TensorFlow学习(十一):保存TFRecord文件

本文详细介绍了如何使用TensorFlow将数据保存为TFRecord格式,包括关键API如TFRecordWriter、Example、Features、Feature等的用法,并给出了从CSV文件和硬盘图片转换为TFRecord格式的实例,强调了TFRecord在大数据处理中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

更新:

2018.3.26 对于每个例子添加了详细的解释,方便理解.

做过kaggle竞赛的应该很熟悉.csv文件了,.csv文件非常方便,但是通常读取的时候,是一次性读取到内存里面的.要是内存小的话,就要想其他的办法了,那就变得很麻烦了.
或者有时候,从硬盘上面直接读取图片啊什么的,因为图片的文件格式,存放位置各种各样等等一些因素,要是想在训练阶段直接这么使用的话,就更加麻烦了.所以,对于数据进行统一的管理是很有必要的.TFRecord就是对于输入数据做统一管理的格式.加上一些多线程的处理方式,使得在训练期间对于数据管理把控的效率和舒适度都好于暴力的方法.
小的任务什么方法差别不大,但是对于大的任务,使用统一格式管理的好处就非常显著了.因此,TFRecord的使用方法很有必要熟悉.
这节并不准备将TFRcord文件的读取,只讲怎么保存为TFRecord文件,读取还涉及到其他的操作,所以之后会和其他的操作一起讲.
本文的顺序是先讲保存TFRecord文件的时候常见的API,然后再举例子在实际中怎么使用这些API.

一.重要API

Ⅰ tf.python_io.TFRecordWriter

把记录写入到TFRecords文件的类.

__init__(path,options=None)

作用:创建一个TFRecordWriter对象,这个对象就负责写记录到指定的文件中去了.
参数:
path: TFRecords 文件路径
options: (可选) TFRecordOptions对象

close()

作用:关闭对象.

write(record)

作用:把字符串形式的记录写到文件中去.
参数:
record: 字符串,待写入的记录

Ⅱ.tf.train.Example

这个类是非常重要的,TFRecord文件中的数据都是通过tf.train.Example Protocol Buffer的格式存储的.在这里,不会非常详细的讲这个类,但是会给出常见的使用方法和一些重要函数的解释.其他的细节可以参考文档.
class tf.train.Example

属性:

features Magic attribute generated for “features” proto field.

函数:

__init__(**kwargs)

这个函数是初始化函数,会生成一个Example对象,一般我们使用的时候,是传入一个tf.train.Features对象进去.

SerializeToString()

作用:把example序列化为一个字符串,因为在写入到TFRcorde的时候,write方法的参数是字符串的.

Ⅲ.tf.train.Features

class tf.train.Features

属性:

feature

函数:

__init__(**kwargs)
作用:初始化Features对象,一般我们是传入一个字典,字典的键是一个字符串,表示名字,字典的值是一个tf.train.Feature对象.

Ⅳ.tf.train.Feature

class tf.train.Feature

属性:

bytes_list
float_list
int64_list

函数:
__init__(**kwargs)

作用:构造一个Feature对象,一般使用的时候,传入 tf.train.Int64List, tf.train.BytesList, tf.train.FloatList对象.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值