Tensorflow: 文件读写

本文介绍了如何使用Tensorflow进行文件读写,重点讲解了将数据转换为TFRecord格式的过程,包括从CSV文件和图片数据生成TFRecord,以及利用FixedLengthRecordReader、TextLineReader和TFRecordReader读取文件。同时,提到了相关的关键类和函数,如TFRecordWriter、Example、Features和Feature,以及解析和解码操作。
摘要由CSDN通过智能技术生成

写文件

这里的写, 指的是把各种格式的数据(如字符, 图片等)统一转换成Tensorflow的标准支持格式TFRecord.

TFRecord是输入数据统一管理的格式, 它其实是一种二进制文件.

写入:
通过将数据填入到tf.train.Example类, Exampleprotocol buffer包含了字段的tf.train.Features, 使用数据修改Features, 实现将protocol buffer序列化成一个字符串, 再通过tf.python_io.TFRecordWriter类将序列化的字符串写入到TFRecord中.

读出:
使用tf.TFRecordReader读取器, 通过tf.parse_single_example解析器解析, parse_single_example操作可以将Example protocol buffer解析为张量, 然后用解码器 tf.decode_raw解码.

相关类/函数

  • tf.python_io.TFRecordWriter

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

    • init()
    '''
    作用: 创建一个TFRecordWriter对象, 将数据记录到指定的TFRecord文件中.
    参数:
        path: (must)TFRecords文件的路径;
        options: TFRecordOptions对象;
    '''
    • write()
    '''
    作用: 将一条序列化字符串记录写入到文件中.
    参数:
        record: string, 序列化字符串记录.
    '''
    • close()
    '''
    作用: 关闭TFRecordWriter.
    '''
  • tf.train.Example

    Example是使用某种规则规则化后的数据, 通过使用TFRecordWriter写入到TFRecord中.

    Example包含一个键值对数据结构(与dict相同), 使用属性features记录, 因此, 初始化时必须传入这个features参数, 它是一个tf.train.Features对象.

    • init()
    '''
    作用: 初始化一个Example.
    参数:
        features: tf.train.Features对象, 其中每条记录的key表示数据的描述, value为固定数据类型的特殊处理的数据.
    '''
    • SerializeToString()
    '''
    作用: 把这个Example序列化成字符串, 将这个字符串通过TFRecordWriter写入到TFRecord中.
    '''
  • tf.train.Features

    协议化的描述数据信息, 结构为键值对, key为字符串, 用来描述数据, value为tf.train.Feature对象, 一个Feature包含一种数据类型的list, list中有若干数据.

    list有三种: BytesList, FloatList, Int64List

    • init()
    '''
    作用: 初始化一个Features
    参数:
        feature: dict字典, key为数据名称, value为tf.train.Feature对象, 特殊的数据list.
    '''
    tf.train.Features(feature={
        "image_raw":tf.train.Feature(bytes_list=tf.train.BytesList(value=[image_raw])),
                               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值