当传递的值为dataset.take(1)时,无法使用tf.cast更改数据类型

2024-09-30 00:42:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想更改数据集中一个元素的数据类型。(元素形状=(32,28,28)-->;这是mnist数据集中的一批28×28图像)

因此,我运行了以下命令:tf.cast(dataset.take(1),tf.float32)

我的数据集的类型是tensorflow.python.data.ops.dataset_ops.PrefetchDataset

它抛出了一个错误:: Attempt to convert a value (<TakeDataset shapes: (32, 28, 28), types: tf.uint8>) with an unsupported type (<class 'tensorflow.python.data.ops.dataset_ops.TakeDataset'>) to a Tensor.

因此,我使用以下代码从数据集中提取了一个元素:

    for batch_data in dataset:
        one_element = dataset
        break

然后我运行了tf.cast(one_element,tf.float32),它就工作了

我能知道为什么会这样吗


Tags: to数据元素datatftensorflowelementone

热门问题