一、理论部分 点击此处返回总目录 二、实战部分
从这里下载图片用来制作数据集 https://github.com/caoxiaoliang/tensorflow-learning/tree/master/code 这一篇文章也写得不错,推荐 https://blog.csdn.net/miaomiaoyuan/article/details/56865361
解决了第一个问题,我们再来看第二个问题,实现特定应用。
一、理论部分 制作数据集可以使用二进制文件tfrecords,来保存对图片和标签的序列化。 用tf.train.Example协议来存储训练数据,训练数据的特征用键值对表示。如 原始图片:图片的值,标签:标签的值。值可以是字符串、实数列表、整数列表。 用SerializeToString()把数据序列化成字符串来存储。
要生成tfrecords文件,首先要创建一个writer。writer=tf.python_io.TFRecordWriter(),在括号中告知要生成的tfRecords在哪里,叫什么名。 用for循环遍历每张图片和标签: 用tf.train.Example中的teatures封装到example中。在tf.train.Features()中,特征会以字典的形式给出。"[img_raw]"这个位置放入二进制的图片,"labels"这个位置放入这张图片所对应的标签。 再用writer.write()把example进行序列化。 这样就生成了tfrecords文件。
如果想从tfrecords文件解析出图片和标签,需要新建立文件队列名filename,"[tfRecord_path]"告知tfrecords文件放到哪里了,包括路径和文件名。 新建一个reader。 读出的每一个样本保存在serialized_example中。 进行解序列化。 恢复img_raw到img。 把img的形状变为1行784列。也就是包含784个元素的一维数组。 把img的每个元素变为浮点数,并且在0~1之间。 把label的每一个元素也变为浮点数。 这样img和label就满足上一节课模型的输入要求了。
二、实战部分
首先准备数据,从这里下载图片,解压。
在.\mnist_data_jpg下有四个文件(夹):
其中: .\mnist_data_jpg\mnist_train_jpg_60000下,有60000张图片,如下:
.\mnist_data_jpg\mnist_test_jpg_10000下,有10000张图片,如下:
mnist_train_jpg_60000.txt,共有60000行,内容如下:
mnist_test_jpg_10000.txt共有10000行,内容如下:
下面我们来看一下代码: 比上一节的代码多了一个mnist_generateds.py文件,里面包含了tfrecord文件的生成和标签图片的批获取。在mnist_backward.py和mnist_test.py中,修改了图片和标签的获取接口。mnist_forward.py和mnist_app.py和上一节的完全相同。
//mnist.generateds.py
|
如何制作数据集,实现特定应用?
最新推荐文章于 2024-05-26 16:30:58 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)