Tensorflow创建TFRecord文件

tensorflow小白一枚,折腾了一晚上终于把昨天从FDDB数据集中截取的5000多张人脸图像生成了TFRecord文件,方便之后的读取(截取5k多人脸的python代码可以看前一篇FDDB数据集处理)
先用tensorflow自带的mnist数据集试了试,生成成功之后做了些修改,用来处理自己的数据

import tensorflow as tf
from PIL import Image
import pylab
labels=[1]
#print(type(labels[0]))
#生成整数型的属性
def _int64_feature(value):
    return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))
#生成字符串的属性
def _bytes_feature(value):
    return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))

#输出TFRord文件地址
filename=r'C:\Users\Administrator\Desktop\dataset\TFRcords\faces-images.tfrecords'

#创建写入的writer
writer=tf.python_io.TFRecordWriter(filename)

for index in range(1,5172):
#    读取faces的路径
    facesfile = r'C:\Users\Administrator\Desktop\dataset\faces-resize-gray\{}.jpg'.format(index)
    images= Image.open(facesfile)
#将读入的图片转为array
    image_array=pylab.array(images)
    
    image_str=image_array.tostring()

    example=tf.train.Example(features=tf.train.Features(feature={
            'pixels':_int64_feature(image_array.shape[0]),
            'label':_int64_feature(labels[0]),
            'image_array':_bytes_feature(image_str)
            }))
#    将example写入TFRecord文件
    writer.write(example.SerializeToString())
writer.close()

你可能感兴趣的:(Tensorflow创建TFRecord文件)