【TensorFlow动手玩】数据导入2

本文介绍了如何使用TensorFlow高效地导入数据,通过创建二进制.tfrecord文件存储序列化的样本,然后定义读取样本和随机读取mini-batch的操作。内容包括二进制文件的创建、样本读取函数、随机队列以及mini-batch的生成,这些都为训练深度学习模型提供输入数据。
摘要由CSDN通过智能技术生成

简介

本文介绍TensorFlow的第二种数据导入方法。

为了保持高效,这种方法稍显繁琐。分为如下几个步骤:
- 把所有样本写入二进制文件(只执行一次)
- 创建Tensor,从二进制文件读取一个样本
- 创建Tensor,从二进制文件随机读取一个mini-batch
- 把mini-batchTensor传入网络作为输入节点。

二进制文件

使用tf.python_io.TFRecordWriter创建一个专门存储tensorflow数据的writer,扩展名为’.tfrecord’。
该文件中依次存储着序列化的tf.train.Example类型的样本。

writer = tf.python_io.TFRecordWriter('/tmp/data.tfrecord')
for i in range(0, 10):
    # 创建样本example
    # ...
    serialized = example.SerializeToString()   # 序列化
    writer.write(serialized)    # 写入文件
writer.close()

每一个examplefeature成员变量是一个dict,存储一个样本的不同部分(例如图像像素+类标)。以下例子的样本中包含三个键a,b,c

    # 创建样本example
    a_data = 0.618 + i         # float
    b_data = [2016 + i, 2017+i]     # int64
    c_data = numpy.array([[0, 1, 2],[3, 4, 5]]) + i    # bytes
    c_data = c_data.astype(numpy.uint8)
    c_raw = c.tostring()             # 转化成字符串

    example = tf.train.Example(
        features=tf.train.Features(
            feature={
                'a': tf.train.Feature(
                    float_list=tf.train.FloatList(value&#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值