tensorflow生成多个tfrecord文件实例
我就废话不多说了,直接上代码吧!
import tensorflow as tf from PIL import Image import matplotlib.pyplot as plt import numpy as np import os i = 0 j = 0 num_shards = 100#总共写入的文件个数 instances_per_shard = 2#每个文件中的数据个数 sess=tf.InteractiveSession() cwd = "F:/寒假/google--data/新建文件夹/" #图片数据所在目录位置(读者自己去改就好了) classes = {'daisy','rose'} #预先自己定义的类别,根据自己的需要修改 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])) for index, name in enumerate(classes):#枚举函数 class_path = cwd + name + "/"#选取具体数据目录 for img_name in os.listdir(class_path):#遍历文件列表 img_path = class_path + img_name#图片路径 img = Image.open(img_path) img = img.resize((299, 299)) #图像reshape大小设置,根据自己的需要修改 img_raw = img.tobytes() example = tf.train.Example(features=tf.train.Features(feature={ 'label': _int64_feature(index), 'img_raw': _bytes_feature(img_raw), 'i': _int64_feature(i), 'j': _int64_feature(j) })) filename = ("F:/寒假/google--data/data.tfrecords-%.5d-of-%.5d"%(i,num_shards)) if j == instances_per_shard-1: i+=1 j+=1 if j == instances_per_shard: j=0 writer = tf.python_io.TFRecordWriter(filename) writer.write(example.SerializeToString())#将一个example写入tfrecord文件 writer.close()
以上这篇tensorflow生成多个tfrecord文件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
赞 (0)