[tensorflow]tf.data.Dataset数据输入管道

目录

一、tf.data简介

二、读取数据

1、从内存中读取数据-numpy数组

2、从文件中读取数据

三、变换Dataset中的元素

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

2、使用Dataset.batch()批处理数据集元素

3、使用Dataset.shuffle()随机重排输入数据

4、使用Dataset.repeat()迭代数据集多个周期

四、创建Iterator访问Dataset中的元素

1、单次迭代器

2、可初始化迭代器


一、tf.data简介

借助tf.data,构建输入管道(将数据加载到模型)。

tf.data在TensorFlow中引入两个新的抽象类:tf.data.Dataset、tf.data.Iterator.

Dataset:创建和转化datasets的基类。初始化dataset两种方式:从内存读取数据,从Python生成器读取数据。

TextLineDataset:从text文件中读取数据,创建dataset。

FTRecordDataset:从TFRecord文件中读取数据,创建dataset。

FixedLengthRecordDataset:从二进制文件中读取固定大小的记录,创建dataset。

Iterator:获取dataset中的元素。

二、读取数据

1、从内存中读取数据-numpy数组

适合小型数据集,将所有数据加载到numpy数组中,使用tf.data.Dataset.from_tensor_slices()创建Dataset。

# Load the training data into two NumPy arrays, for example using `np.load()`.
with np.load("/var/data/training_data.npy") as data:
  features = data["features"]
  labels = data["labels"]

# Assume that each row of `features` corresponds to the same row as `labels`.
assert features.shape[0] == labels.shape[0]

dataset = tf.data.Dataset.from_tensor_slices((features, labels))

2、从文件中读取数据

tf.data支持多种文件格式,可以处理那些不适合存储在内存中的大型数据集。

通过tf.data.TFRecordDataset类,读取tfrecord文件

# Creates a dataset that reads all of the examples from two files.
filenames = ["/var/data/file1.tfrecord", "/var/data/file2.tfrecord"]
dataset = tf.data.TFRecordDataset(filenames)

通过tf.data.TextLineDataset类,读取文本文件

filenames = ["/var/data/file1.txt", "/var/data/file2.txt"]
dataset = tf.data.TextLineDataset(filenames)

通过tf.contrib.data.CsvDataset类,读取csv文件


                
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值