![机器学习实战:模型构建与应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/359/44389359/b_44389359.jpg)
上QQ阅读APP看书,第一时间看更新
4.1 TFDS入门
让我们通过几个有关如何使用TFDS的简单例子来阐明它如何提供了一个标准的数据接口。
你可以使用一条pip
命令来安装它:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/083-1.jpg?sign=1739280091-PaXqXPYhffdyTvtAW2AOKWurJhoUAT1U-0-8120064e9bec1526f0016eb424f06f6a)
安装完成之后,你可以使用tfds.load
来访问数据集,将所需要的数据集的名字传递给它。例如,如果你想使用Fashion MNIST,可以使用以下代码:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/083-2.jpg?sign=1739280091-QWHJOZ2L6SuOsSbPovANA0VPsKYFrvj5-0-5e74bc28c0318e0514a44b7f3383bb07)
确保检查你从tfds.load
命令返回获取的数据类型—打印元素的输出将是数据中原本存在的不同分割。在这个例子中,它是一个字典,其中包含两个字符串:test
和train
。这些是可用的分割。
如果你想将这些分割加载到一个包含真实数据的数据集中,可以在tfds.load
中简单指定想要的分割:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/084-1.jpg?sign=1739280091-TJZml9NyxmG4552VuDj2U21Rh4QAtNn4-0-adde7c3379f4d41a43e20a1cf61a27d8)
在这个例子中,你会看到输出是DatasetAdapter
,你可以通过它来迭代以检查数据。这个适配器的一个很好的功能是可以通过简单地调用take(1)
来获得第一个记录。下面检查数据:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/084-2.jpg?sign=1739280091-aony1GoPtsB5VPLORi02CBuKz4sbCjYf-0-e6d8ae83ec87eb10d3069ebacc002f51)
第一个print
的输出会展示每一个记录中元素的类型是一个词典。当打印字典中的键值时,我们会看到在这个图像集合中类型是image
和label
。因此,如果你想检查数据集中的一个值,可以运行如下代码:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/084-3.jpg?sign=1739280091-e1MWJs5LncIRDmJbClAaJArKsAP7WUPX-0-b72ad49d96862712ccd3a2bc59f86289)
你会看到image的输出是一个其值的范围为0~255的28×28的数组(在tf.Tensor
中),代表像素的强度。label会输出tf.Tensor(2, shape=(), dtype=int64)
,表示图像在数据集中的类型是2。
在加载数据集时,有关数据集的数据可以使用with_info
参数得到,如下所示:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/084-4.jpg?sign=1739280091-vPkkXUlXsFr8zUy0SsfhZNoPmg8BWrTQ-0-6ccc9eb7b83a8d61eb7ec7d45e90d111)
打印info会为你提供数据集内容的详细信息。例如,对Fashion MNIST,你会看到类似如下的输出:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/084-5.jpg?sign=1739280091-i8eAi8OqteMcASHf92JESK9kAntiQbnl-0-e7d464c2ad776fb7f6a0e06a7e481283)
从以上代码中你可以看到详细信息,例如分割(就像之前展示的)和数据集中的特征,以及一些额外的信息(例如引用、描述和数据集的版本)。