如何制作数据集,实现特定应用?

本文详细介绍了如何从头开始构建数据集,适用于特定应用场景。首先,讲解了数据收集的策略,包括网络爬虫和公开数据源的利用。接着,讨论了数据预处理的重要性,如清洗、去重和标准化。然后,提到了特征工程,如何选择和构造关键特征以增强模型性能。最后,介绍了数据集划分和验证方法,确保模型训练的有效性和泛化能力。
摘要由CSDN通过智能技术生成

一、理论部分                                                                                                                                     点击此处返回总目录

二、实战部分

 

 

从这里下载图片用来制作数据集  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

#coding:utf-8
import tensorflow as tf 
import numpy as np 
from PIL import Image
import os 

image_train_path = './mnist_data_jpg/mnist_train_jpg_60000/'
label_train_path = './mnist_data_jpg/mnist_train_jpg_60000.txt'
tfRecord_train = './data/mnist_train.tfrecords'
image_test_path = './mnist_data_jpg/mnist_test_jpg_10000/'
label_test_path = './mnist_data_jpg/mnist_test_jpg_10000.tx

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值