当前位置:   article > 正文

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

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

一、什么是TFRecords文件

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

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

3、文件格式*.tfrecords

二、Example结构解析

1、Example

  1. features {
  2. feature {
  3. key: "image"
  4. value {
  5. bytes_list {
  6. value: "\377\374\375\372\356\351\365\31\350\356\352\350"
  7. }
  8. }
  9. }
  10. feature {
  11. key: "lable"
  12. value {
  13. int64_list {
  14. value: 9
  15. }
  16. }
  17. }
  18. }

特征值 - 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文件
 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号