tensorflow Data api初探

tf.Data

作用:根据简单的可重用的片段构建复杂的输入管道

介绍一下俩个主要的抽象类:

1. Dataset: 一系列元素, 每个元素包含一个或者多个Tensor对象,这些对象称之为组件,每个组件都有一个tf.DType, tf.TensorShape

2. Iterator:从数据集中提取元素的主要方法。

    Iterator.get_next()会在执行的时候生成下一个元素

    迭代器类型如下:

        单次

        可初始化

        可重新初始化

        可馈送

基本机制

启动输入管道步骤:

    1. 定义来源, 

            如果 要从内存中构建Dataset,则可以使用tf.data.Dataset.from_tensors()或者tf.data.Dataset.from_tensor_slices()。

            如果输入数据是在磁盘上并且以TFRecord格式存储在磁盘上的话,使用tf.data.TFRecordDataset。

    2. 转换为新的Dataset

            单元素转换map

            多元素转换batch

    3. 定义迭代器对象消费Dataset

读取输入数据

1. NumPy数组

    如果输入数据都在内存中

    1.1 可以简单地将他们转成Tensor, 并使用Dataset.from_tensor_slices()

    会将数据作为tf.constant()存在图中,适合小数据集

    内存浪费

    1.2 根据tf.placeholder()张量定义Dataset, 并在数据集初始化Iterator时馈送NumPy数组    

    code:

2. TFRecord数据

tf.data.TFRecordDataset

3. 文本数据

tf.data.TextLineDataset()

4. CSV数据

tf.contrib.data.CsvDataset

使用Dataset.map()预处理数据

许多输入管道都从TFRecord格式文件中提取tf.train.Example协议缓冲区消息

你可能感兴趣的:(tensorflow Data api初探)