今天小编就为大家分享一篇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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。