python 制作tfrecord

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 制作tfrecord相关的知识,希望对你有一定的参考价值。

import os 
import tensorflow as tf 
from PIL import Image  # 注意Image,后面会用到
import matplotlib.pyplot as plt 
import numpy as np

#tfrecord, 这是一种将图像数据和标签放在一起的二进制文件,能更好的利用内存,在tensorflow中快速的复制,移动,读取,存储

cwd='D:\Python\data\dog\\' 
classes={'husky','chihuahua'} #人为 设定 2 类
writer= tf.python_io.TFRecordWriter("dog_train.tfrecords") #要生成的文件

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((128,128))
        img_raw=img.tobytes()#将图片转化为二进制格式
        example = tf.train.Example(features=tf.train.Features(feature={
            "label": tf.train.Feature(int64_list=tf.train.Int64List(value=[index])),
            'img_raw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_raw]))
        })) #example对象对label和image数据进行封装
        writer.write(example.SerializeToString())  #序列化为字符串

writer.close()

以上是关于python 制作tfrecord的主要内容,如果未能解决你的问题,请参考以下文章

TFRecord文件的读写

使用tensorflow中的Dataset来读取制作好的tfrecords文件

制作tfrecord 代码——可用任意照片均可

猫狗大战的TFrecord数据集制作

TensorFlow制作TFRecord文件方式的数据集的完整程序,最好标明怎么输入输出地址

tensorflow的tfrecord操作代码与数据协议规范