实现人脸识别性别之路---制作训练集中使用到的函数
Tf.python_io.TFRecordWrite(path:TFRcord文件路径):表示的是个类,它的作用是创建一个对象,这个对象负责将数据写入TFRecords文件中
Enumerate()参数、用法
用法:将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标
Tf.train.Int64List():参数、作用
参数:列表
作用:将每个列表中的元素改为int64
返回值:元素为int64的列表
Tf.train.Features(feature):参数、作用
作用:构建每个样本的信息键值对
Feature:字典数据,key为要保存的名字,value为tf.train.Feature的实例
Return:Features类型
Tf.train.Example():参数、作用、返回值
参数:能够成一个例子的所包含的东西,
作用:将图片数据转化为tfrecord的例子
调用数据集
Tf.train.string_input_producer():参数、意义
参数:文件夹地址、shuffle(当他的值为True的时候,表示在读取文件夹的文件的时候,会打乱读取的顺序)、equchs表示总的列表进去的列队的次数
意义:
出现的错误:ValueError: Shape () must have rank at least 1。这是因为传入的文件不对,传入的文件格式为:.tfrecord
Reader.read():参数、用法、返回值
参数:文件地址
返回值:返回文件名和文件。这里应该说是返回一个文件的一些信息
Tf.parse_single_example():参数、返回值、用法
参数:Reader.read()返回的文件、feartures以字典的形式赋值,img,label
返回值:img,label的字典
用法:可以通过调用字典的形式把把图像数字信息、图像对相应的名字提取出来
Tf.FixedLenFearture():参数,返回值,作用
参数:一个空的[]表示没有指定张量,张量里面数据的类型,如:tf.flaot32等
返回值:一个定长的张量。
Tf.decode_raw():参数、用法、意义
参数:read()函数读取到图片信息、类型参数
用法:将read()函数返回的图片的二进制数字信息进行解码
Tf.train.shuffle_batch():参数的取值、返回值、用法
参数:[图像的信息,与图像信息相匹配的标签]、batch_size每次取多少个值、放入队列的容量、小于放入队列的容量值
返回值:图像的信息、与图像信息相对应的标签他们的个数都是batch_size决定的
解释的例子:
tf.train.shuffle_batch是将队列中数据打乱后,再读取出来,因此队列中剩下的数据也是乱序的,队头也是一直在补充(我猜也是按顺序补充),
比如batch_size=5,capacity=10,min_after_dequeue=5,
初始是有序的0,1,..,9(10条记录),
然后打乱8,2,6,4,3,7,9,2,0,1(10条记录),
队尾取出5条,剩下7,9,2,0,1(5条记录),
然后又按顺序补充进来,变成7,9,2,0,1,10,11,12,13,14(10条记录),
再打乱13,10,2,7,0,12…1(10条记录),
再出队…