![机器学习实战:模型构建与应用](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=1739533524-SL4h4ZYkmwbOAaCITpwk5eaXvHdBQbaG-0-304a0a76d93d60663252527edd7d3af1)
安装完成之后,你可以使用tfds.load
来访问数据集,将所需要的数据集的名字传递给它。例如,如果你想使用Fashion MNIST,可以使用以下代码:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/083-2.jpg?sign=1739533524-4Aog0kBBAVQJYevUsXs6pjbJPQRHwt5V-0-2c176374f0c3382816bc5aaa3498a7cb)
确保检查你从tfds.load
命令返回获取的数据类型—打印元素的输出将是数据中原本存在的不同分割。在这个例子中,它是一个字典,其中包含两个字符串:test
和train
。这些是可用的分割。
如果你想将这些分割加载到一个包含真实数据的数据集中,可以在tfds.load
中简单指定想要的分割:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/084-1.jpg?sign=1739533524-nqhXOfKAq05Cj0ns4PGvAx0OvaK97heA-0-df8904a5cf6e02de0193b887c63e2037)
在这个例子中,你会看到输出是DatasetAdapter
,你可以通过它来迭代以检查数据。这个适配器的一个很好的功能是可以通过简单地调用take(1)
来获得第一个记录。下面检查数据:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/084-2.jpg?sign=1739533524-nBAst7grXifHG4S5R1jHqpzN7VMB2bJI-0-54c54808e08fe27d07d4455ef866004f)
第一个print
的输出会展示每一个记录中元素的类型是一个词典。当打印字典中的键值时,我们会看到在这个图像集合中类型是image
和label
。因此,如果你想检查数据集中的一个值,可以运行如下代码:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/084-3.jpg?sign=1739533524-FfB9oSQb1PAR09WukqC7I0JccXAo7z3n-0-b7df9c35193e9045ea173651ce4ef018)
你会看到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=1739533524-ekEmEQZ3Y8vWVRbGVH8dVicDM9SLcpDL-0-863d0165f8a34f1d95030fbe5e871acf)
打印info会为你提供数据集内容的详细信息。例如,对Fashion MNIST,你会看到类似如下的输出:
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/084-5.jpg?sign=1739533524-rwuvWVPomkGwnpz9iRpgSmVjkp0okyRh-0-fcba91b2bc9e81153c5f9a9bf7732a14)
从以上代码中你可以看到详细信息,例如分割(就像之前展示的)和数据集中的特征,以及一些额外的信息(例如引用、描述和数据集的版本)。