将标记好的图片,制作成tfrecord图片
import tensorflow as tf from PIL import Image import numpy as np import os classes = ["airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse", "ship", "truck"] data_path = "D:\\python学习\\神经网络动物分类\\" tfRecord_train="traindata.tfrecords" def write_tfRecord(tfRecordName, image_path, label_path): writer = tf.python_io.TFRecordWriter(tfRecordName) num_pic = 0 f = open(label_path,'r') contents = f.readlines() # 读取整个文件内容 f.close() for content in contents: value = content.split() # 按空格分开 temp = int(value[1]) img_path = image_path +"train\\" +classes[temp] + "\\" + value[0] img = Image.open(img_path) img_raw = img.tobytes() # 转化为二进制 labels = [0] * 10 labels [int(value[1])] = 1 example = tf.train.Example(features=tf.train.Features( feature={ 'label': tf.train.Feature(int64_list=tf.train.Int64List(value=labels)), 'img_raw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_raw])) })) writer.write(example.SerializeToString()) num_pic +=1 if not num_pic % 1000: print('the number of picture:', num_pic) writer.close() print("write tfrecord successful") def generate_tfRecord(data_path): isExists = os.path.exists(data_path) if not isExists: os.makedirs(data_path) print("The directory was created successfully") else: print("directory already exists") label_path = data_path + "dataset.txt" write_tfRecord(tfRecord_train, data_path, label_path) def make_path(): with open("dataset.txt","w") as f: for classe in classes: path = "D:\\python学习\\神经网络动物分类\\train" + classe for filename in os.listdir(path): f.write(filename+" "+str(classes.index(classe))) f.write("\n") if __name__ == '__main__': generate_tfRecord(data_path)