低级 Tensorflow,dataset.as_numpy_iterator() returns 指令而不是 numpy 数组

Low-Level Tensorflow, dataset.as_numpy_iterator() returns dicts instead of numpy arrays

当我尝试使用 tf.data.Dataset.batch() 的方法导入和批处理数据集时 并使用 dataset.as_numpy_iterator(),迭代对象是字典,即使我应该得到多个 numpy 数组。

dataset = tfds.load('mnist', split='train')
dataset.batch(batch_size, drop_remainder=False)
for i in dataset.as_numpy_iterator():
    print(type(i))  # prints <class 'dict'>

为什么会这样?

使用 as_supervised = 真

import tensorflow_datasets as tfds
dataset = tfds.load('mnist', split='train', as_supervised=True)
dataset.batch(10, drop_remainder=False)
for image, label in tfds.as_numpy(dataset):
    print(type(image), type(label), label)

根据 TensorFlow 文档,如果 as_supervised 为 False,您将获得字典值。 检查文档 Here