Python 当传递的值为dataset.take(1)时,无法使用tf.cast更改数据类型
我想更改数据集中一个元素的数据类型。(元素形状=(32,28,28)-->这是mnist数据集中的一批28×28图像) 因此,我运行了以下命令:Python 当传递的值为dataset.take(1)时,无法使用tf.cast更改数据类型,python,tensorflow,casting,dtype,Python,Tensorflow,Casting,Dtype,我想更改数据集中一个元素的数据类型。(元素形状=(32,28,28)-->这是mnist数据集中的一批28×28图像) 因此,我运行了以下命令:tf.cast(dataset.take(1),tf.float32) 我的数据集的类型是tensorflow.python.data.ops.dataset\u ops.PrefetchDataset 它抛出了一个错误::尝试将不支持类型()的值()转换为张量。 因此,我使用以下代码从数据集中提取了一个元素: for batch_data in
tf.cast(dataset.take(1),tf.float32)
我的数据集的类型是tensorflow.python.data.ops.dataset\u ops.PrefetchDataset
它抛出了一个错误::尝试将不支持类型()的值()转换为张量。
因此,我使用以下代码从数据集中提取了一个元素:
for batch_data in dataset:
one_element = dataset
break
然后我运行了tf.cast(一个元素,tf.float32)
,它就可以工作了
我可以知道为什么会发生这种情况吗?tf.data.Dataset.take()返回数据集而不是张量(即使调用take(1)):