Tensorflow——TFRecord文件的制作及读取
一、TFRecord文件的制作
TFRecord是TensorFlow提供的统一存储数据的一种格式。在训练一个深度学习的模型之前,往往需要先制作数据集。这里主要介绍在TensorFlow框架下,将图像数据库及其对应的标签制作成TFRecord文件,便于图像数据的输入。直接贴个样例代码讲解吧。
import tensorflow as tf
import os
from PIL import Image
#———————————————————————————TFRecord文件制作———————————————————————————————
image_train_path = '' # label路径,label是txt文件
label_train_path = ''
image_test_path = '' # 图像文件路径
label_test_path = ''
data_path = './data' # .tfrecords 文件保存路径
tfRecord_train = './data/train.tfrecords' # tfrecord文件名
tfRecord_test = './data/test.tfrecords'
def write_tfRecord(tfRecordName, image_path, label_path):
writer = tf.python_io.TFRecordWriter(tfRecordName)
num_pic = 0 #计数器
f = open(label_path,'r') #读label '.txt'文件:每行由图片名与标签组成
contents = f.readlines() #获取整个文件
f.close()
for content in contents: # 遍历每行的内容
value = content.split(' ') # 空格分隔每行的图片名与标签,分割后组成列表value
img = Image.open(image_path + value[0]) # 图片文件的路径
img_raw = img.tobytes() # 将图片转换成二进制数据
labels = float(value[1])