利用Tensorflow中的TFRecord生成与读取图片

本文介绍了如何使用Tensorflow的TFRecord格式存储和读取图像数据,包括TFRecord的原理、如何声明和生成TFRecord文件、解析文件以及创建数据生成器的过程,适用于大规模数据集的高效处理。
摘要由CSDN通过智能技术生成

本人是深度学习的爱好者,最近在参加cv的表情识别训练,把一些步骤和过程记录下来

一.什么是TFRecord

对于计算机的内存来说,我们训练集样本的数目是巨大的,而且这些文件分散在不同的文件夹中,在存读取的过程中会耗费大量的时间和硬盘资源,此时就需要我们用TFRecord的储存格式来帮助存储数据。

protuBuf

TFRecord使用了名为“Protocol Buffer”二进制数据编码方案,它一次性只加载一个二进制文件,在训练数据很多的时候十分方便快捷。并且我们可以对不同的文件夹下的子文件分别生成TFRecord,十分方便。

二.声明tfRecord

首先我们要生成一个TFRecord形式的实例

writer=tf.python_io.TFRecordWriter(filename)
    
image=Image.open(filename)

然后将图片转化为TFRecord存入特征需要的二进制格式,因为人脸训练表情分为图像和分类标志两类,所以分别以bytesList和Int64List的形式存储到feature参数中(feature是字典格式),最后将其序列化转换为字符串,写入TFRecord中。

image_bytes=image.tobytes()
features={}
features['image']=tf.train.Feature(bytes_list=tf.train.BytesList(value=[image_bytes]))
features['label']=tf.train.Feature(int64_list=tf.tr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值