![从零开始学TensorFlow2.0](https://wfqqreader-1252317822.image.myqcloud.com/cover/188/33692188/b_33692188.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.3 数据集
数据集是数据的集合,是机器学习的基础,本节使用tf.data.Dataset API构建管道,为模型提供数据。
1.创建源数据集
在使用数据集之前,需要先创建一个源数据集,使用工厂函数(如Dataset.from_tensors,Dataset.from_tensor_slices)或从TextLineDataset和TFRecordDataset等文件中读取的对象来创建源数据集,代码如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_30_3.jpg?sign=1739380805-B00xw0kfSlDuBrqhxfpIpA1vidgotwgG-0-917c20d6d1e916d3f50ec3a359940f18)
代码的运行结果如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_30_4.jpg?sign=1739380805-Q1OCfvnsxZjkgfiP6MBWbKCl62QhEDcV-0-eafdc537d3091fe32aabc38c44047138)
打开返回的文件,如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_31_1.jpg?sign=1739380805-r7j2iI8JiEJuo4B9TU2FzeQI5jfcTjWe-0-cf9d427c6f6b22902c6fd8e7bf1f7d15)
2.转换函数
将map、batch和shuffle等转换函数应用于数据集记录。这里以map和shuffle函数为例,代码如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_31_2.jpg?sign=1739380805-i4ftnbWaeAiD3TFy0eLEy5pm4MFulD7P-0-81bad935ae53bc0e848ec1550076cbc7)
代码的运行结果如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_31_3.jpg?sign=1739380805-VXKiGEEXAaTvyzNfNNoTjxPRChayQJkM-0-754af70b664ad4326a866a78bfdc247f)
3.迭代
迭代是处理数据集的常用方法,tf.data.Dataset对象支持迭代循环记录,示例代码如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_31_4.jpg?sign=1739380805-qPWRIslsC8ZMuPcqHmBQs1KdHuHRpNPZ-0-817a6f0750f05e9eadbb350b63ccc90f)
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_32_1.jpg?sign=1739380805-Xa8EZVckkfcuQ7ok8RIZY1ju74LOmFfs-0-48efbf698255519c7cdf8fb6e2b8404c)
代码的运行结果如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_32_2.jpg?sign=1739380805-6YboFgI8reyl1fx51J76V1nIlw8RCFeu-0-3d23b30a126be6e1aca655d284318af8)
本节使用几个简单的例子对数据集进行了初步的介绍。在后面的章节中,会经常使用数据集。