美文网首页
TFRecord写和读

TFRecord写和读

作者: 牛牛牛的翔 | 来源:发表于2018-09-28 14:59 被阅读0次

  • 思路

数据移到example, example序列化为字符串后,再写入文件。example 包含Features, Features 包含Feature字典Feature字典value中里包含有一个 FloatList, 或者ByteList,或者Int64List, 数据就写在参数value=[]的列表里。

1. 定义writer

`writer = tf.python_io.TFRecordWriter(tfrecord路径)`

2. 定义example(相当搞人!!)

```  
# img转变为bytes
img = Image.open(img_path)
img = img.resize((224, 224))
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]))
 }))
```

3. 序列化为字符串后写入tfrecord

writer.write(example.SerializeToString())

  • 队列读取
    简明示意图:
  • 计算图

1. 文件名队列

filename_queue = tf.train.string_input_producer([filename])

2. 构造Reader

reader = tf.TFRecordReader()

3. 从队列中读序列化数据

_, serialized_example = reader.read(filename_queue) #返回文件名和文件

4. 解析单个example的features

features = tf.parse_single_example(serialized_example,
                                       features={
                                           'label': tf.FixedLenFeature([], tf.int64),
                                           'img_raw' : tf.FixedLenFeature([], tf.string),
                                       })

5. 从features 字典拿到可用数据

img = tf.decode_raw(features['img_raw'], tf.uint8)
img = tf.reshape(img, [224, 224, 3])
img = tf.cast(img, tf.float32) * (1. / 255) - 0.5
label = tf.cast(features['label'], tf.int32)

6. 获得batch

img_batch, label_batch = tf.train.shuffle_batch([img, label], batch_size=30, capacity=2000, min_after_dequeue=1000)

  • 运行

打开sess后,

1. 首先初始化graph

sess.run(tf.initialize_all_variables())

1. 启动队列

threads = tf.train.start_queue_runners(sess=sess)

2. sess.run()

img_batch, label_batch = sess.run([img_batch, label_batch]

相关文章

  • (Tensorflow)TFRecord样例程序读写

    一:TFRecord样例程序读 二:TFRecord样例程序写

  • TFRecord写和读

    写 思路 数据移到example, example序列化为字符串后,再写入文件。example 包含Feature...

  • tfrecord的读和写(针对tf1.x版本)

    不管怎么说tfrecords都是一个文件格式,读写也出不了常规的文件读写的逻辑,无非是读的时候格式得确定,取的时候...

  • Tensorflow 自定义生成tfrecord文件

    一.TFRecord简介 TensorFlow提供了TFRecord的格式来统一存储数据,它是一种能够将图像数据和...

  • TFRecord 读取和写入

    TFRecord 是tensorflow中用于存储二进制数据的一种简单格式。 # 1. 写入TFRecord文件 ...

  • tfrecord文件读写

    将数据集保存为tfrecord文件 tensorflow读取tfrecord文件用于网络训练 参考文章:Tenso...

  • TFRecord

    TFRecord 是 TensorFlow 提供的用于高速读取数据的文件格式。该post介绍了如何将数据转换为TF...

  • TensorFlow(二)制做自己的数据集

    1.数据集格式 2. 数据集制作代码 参考资料 [1] TensorFlow 制作自己的TFRecord数据集 读...

  • tf+hdfs

    参考: Add HDFS support hadoop.sh 利用TFRecord和HDFS准备TensorFlo...

  • tfrecord这个锤锤

    什么是TFRecord? TFRecord 是Google官方推荐的一种数据格式,是Google专门为Tensor...

网友评论

      本文标题:TFRecord写和读

      本文链接:https://www.haomeiwen.com/subject/xlqciftx.html