深度学习基础之《TensorFlow框架(14)—TFRecords》

一、什么是TFRecords文件

1、TFRecords其实是一种二进制文件,虽然它不如其他格式好理解,但是它能更好的利用内存,更方便复制和移动,并且不需要单独的标签文件

2、使用步骤
(1)获取数据
(2)将数据填入到Example协议内存块(protocol buffer)
(3)将协议内存块序列化为字符串,并且通过tf.io.TFRecordWriter写入到TFRecords文件

3、文件格式*.tfrecords

二、Example结构解析

1、Example

features {
	feature {
		key: "image"
		value {
			bytes_list {
				value: "\377\374\375\372\356\351\365\31\350\356\352\350"
			}
		}
	}
	feature {
		key: "lable"
		value {
			int64_list {
				value: 9
			}
		}
	}
}

特征值 - image - 3072字节
目标值 - label - 1个字节

说明:
(1)tf.train.Example
协议内存块(protocol buffer)(协议内存块包含了字段features)
(2)features
包含了feature字段
(3)feature
中包含要写入的数据、并指明数据类型

2、相关对象
tf.train.Example(features=None)
说明:
(1)写入tfrecords文件
(2)features:tf.train.Features类型的特征实例
(3)return:example格式协议块

tf.train.Features(feature=Nona)
说明:
(1)构建每个样本的信息键值对
(2)feature:字段数据,key为要保存的名字,value为tf.train.Feature实例
(3)return:Features实例

tf.train.Feature(options)
说明:
(1)options
    bytes_list=tf.train.BytesList(value=[Bytes])
    int64_list=tf.train.Int64List(value=[Value])
    float_list=tf.train.FloatList(value=[Value])
(2)支持存入的类型如下
    tf.train.BytesList(value=[Bytes])
    tf.train.Int64List(value=[Value])
    tf.train.FloatList(value=[Value])

3、一个样本的对象

example = tf.train.Example(features=tf.train.Features(feature={"image":tf.train.Feature(bytes_list=tf.train.BytesList(value=[image])"label":tf.train.Feature(int64_list=tf.train.Int64List(value=[label])))}))

三、CIFAR-10数据存入TFRecords文件

四、读取TFRecords文件API

五、读取CIFAR的TFRecords文件
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值