Python 如何在tensorflow 2.x中正确操作tfds.load()数据集?

Python 如何在tensorflow 2.x中正确操作tfds.load()数据集?,python,tensorflow,tensorflow-datasets,tensorflow2.0,Python,Tensorflow,Tensorflow Datasets,Tensorflow2.0,我正在学习如何在tensorflow 2.0和Keras课程中从头开始创建MNIST模型 因此,我得到了mnist数据集,如下所示 mnist_dataset, mnist_info = tfds.load(name = 'mnist', with_info=True, as_supervised=True) mnist_train, mnist_test = mnist_dataset['train'], mnist_dataset['test'] 一切都很好,甚至我在测试我的模型时获得了9

我正在学习如何在tensorflow 2.0和Keras课程中从头开始创建MNIST模型

因此,我得到了mnist数据集,如下所示

mnist_dataset, mnist_info = tfds.load(name = 'mnist', with_info=True, as_supervised=True)
mnist_train, mnist_test = mnist_dataset['train'], mnist_dataset['test']
一切都很好,甚至我在测试我的模型时获得了97%的准确率,我很高兴

当我试图做一些与课程不同的事情时,问题就开始了。我尝试使用matplotlib
plt.imshow()
从mnist_数据集中打印一些示例,但完全失败。然后我开始了一些研究,我得到了一个解决方案,我需要像这样获得数据集:

mnist_dataset2 = tfds.load(name = 'mnist')
mnistt = mnist_dataset2['train']
其中
mnistt
是我可以使用matplotlib操作和打印的数据集


所以我的问题如下:我在哪里可以获得关于可以获得的tfds.load()类型的信息,以及如何根据需要正确地操作它们?(对于像我这样的tensorflow初学者来说,它在某种程度上是可以扩展的)。

tfds.load方法的主要调用包含您需要的所有内容:

mnist_dataset, mnist_info = tfds.load(name = 'mnist', with_info=True, as_supervised=True)
  • name=“mnist”
    ->您正在指定要使用的生成器(mnist)
  • with_info=True
    ->您要求
    tfds.load
    返回
    info
    对象,该对象包含有关返回数据集的所有您需要知道的
  • as_supervised=True
    ->您要求
    tfds.load
    仅获取监督学习任务所需的数据集元素(图像和标签对)
您第一次尝试使用
mnist\u数据集
获取数据(与
matplotlib
一起使用)失败,因为从

print(mnist_info) #run me!
数据集包含两个不同的部分:
train
test

tfds.core.DatasetInfo(
    name='mnist',
    version=1.0.0,
    description='The MNIST database of handwritten digits.',
    urls=['https://storage.googleapis.com/cvdf-datasets/mnist/'],
    features=FeaturesDict({
        'image': Image(shape=(28, 28, 1), dtype=tf.uint8),
        'label': ClassLabel(shape=(), dtype=tf.int64, num_classes=10),
    }),
    total_num_examples=70000,
    splits={
        'test': 10000,
        'train': 60000,
    },
    supervised_keys=('image', 'label'),
    citation="""@article{lecun2010mnist,
      title={MNIST handwritten digit database},
      author={LeCun, Yann and Cortes, Corinna and Burges, CJ},
      journal={ATT Labs [Online]. Available: http://yann. lecun. com/exdb/mnist},
      volume={2},
      year={2010}
    }""",
    redistribution_info=,
)
因此,
tfds.load
返回的对象是一个字典

{
   "train": <train dataset>,
   "test": <test dataset>
}

mnist_info
对象中,您可以获得操作数据集所需的所有信息:分割数、数据类型(例如,“image”是一个数据类型为tf.uint8的28x28x1图像)等。

tfds.load方法的主调用包含您需要的所有信息:

mnist_dataset, mnist_info = tfds.load(name = 'mnist', with_info=True, as_supervised=True)
  • name=“mnist”
    ->您正在指定要使用的生成器(mnist)
  • with_info=True
    ->您要求
    tfds.load
    返回
    info
    对象,该对象包含有关返回数据集的所有您需要知道的
  • as_supervised=True
    ->您要求
    tfds.load
    仅获取监督学习任务所需的数据集元素(图像和标签对)
您第一次尝试使用
mnist\u数据集
获取数据(与
matplotlib
一起使用)失败,因为从

print(mnist_info) #run me!
数据集包含两个不同的部分:
train
test

tfds.core.DatasetInfo(
    name='mnist',
    version=1.0.0,
    description='The MNIST database of handwritten digits.',
    urls=['https://storage.googleapis.com/cvdf-datasets/mnist/'],
    features=FeaturesDict({
        'image': Image(shape=(28, 28, 1), dtype=tf.uint8),
        'label': ClassLabel(shape=(), dtype=tf.int64, num_classes=10),
    }),
    total_num_examples=70000,
    splits={
        'test': 10000,
        'train': 60000,
    },
    supervised_keys=('image', 'label'),
    citation="""@article{lecun2010mnist,
      title={MNIST handwritten digit database},
      author={LeCun, Yann and Cortes, Corinna and Burges, CJ},
      journal={ATT Labs [Online]. Available: http://yann. lecun. com/exdb/mnist},
      volume={2},
      year={2010}
    }""",
    redistribution_info=,
)
因此,
tfds.load
返回的对象是一个字典

{
   "train": <train dataset>,
   "test": <test dataset>
}

mnist\u info
对象中,您可以获得操作数据集所需的所有信息:分割数、数据类型(例如,“image”是一个数据类型为tf.uint8的28x28x1图像),等等。

我使用此代码加载mnist时出错

mnist_dataset, mnist_info = tfds.load(name = 'mnist', with_info=True, as_supervised=True)
错误 init()缺少2个必需的位置参数:“op”和“message”


Source Udemy course

使用此代码加载mnist时出错

mnist_dataset, mnist_info = tfds.load(name = 'mnist', with_info=True, as_supervised=True)
错误 init()缺少2个必需的位置参数:“op”和“message”

来源:我的课程

试试这个

x\u列,y\u列=下一个(iter(mnist\u列))

然后绘制x\U列

试试这个

x\u列,y\u列=下一个(iter(mnist\u列))


然后绘制
x\u train

只是为了澄清一下,标题是tf.load(),但事实上我说的是tfds.load(),我不知道我是否把文章搞砸了。很抱歉。不用担心,ftfy只是为了澄清一下,标题上写着tf.load(),但事实上我说的是tfds.load(),我不知道我是否把文章搞砸了。抱歉。别担心,FTFY我明白你说的一切,然后让我们来解决这个问题:-我能够用下面的代码打印一些示例:mnist_dataset2=tfds.load(name='mnist')mnistt=mnist_dataset2['train']用于mnistt中的mnist_示例。以(1):image=mnist_示例['image']plt.imshow(image.numpy()[:,:,0].astype为例(np.float32))…但我无法使用相同的代码使用mnist_数据集或mnist_列打印示例。据我所知,mnist_列和mnistt有点不同mnist_列:mnistt:mnist_列,我不知道如何操作mnist_列以便能够使用plt.imshow()打印一些示例我理解你所说的一切,然后让我们来解决这个问题:-我能够用下面的代码打印一些示例:mnist_dataset2=tfds.load(name='mnist')mnistt=mnist_dataset2['train']用于mnistt中的mnist_示例。例如:(1):image=mnist_示例['image']plt.imshow(image.numpy()[:,:,0].astype(np.float32))…但我无法使用相同的代码使用mnist_dataset或mnist_train打印示例。据我所知,mnist_train和mnistt有点不同mnist_train:mnistt:mnist_train,我不知道如何操作mnist_train以便能够使用plt.imshow()打印一些示例