tf.data

tf.data
在数据集框架中,每一个数据集代表一个数据来源:数据可能来自一个张量,一个TFRecord文件,一个文本文件,或者经过sharding的一系列文件等。
由于训练数据通常无法全部写入内存中,从数据集中读取数据时需要使用一个迭代器(iterator)按顺序进行读取
数据集是计算图上的一个节点

import tensorflow as tf

# 从数组创建数据集
input_data = [1,2,3,4,5]
dataset = tf.data.Dataset.from_tensor_slices(input_data)

# 定义一个迭代器用于遍历数据集
iterator = dataset.make_one_shot_iterator()
# get_next()返回代表一个输入数据的张量
x = iterator.get_next()
y = x * x

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(len(input_data)):
        print(sess.run(y))
# 输出:
#     1
#     4
#     9
#     16
#     25
import tensorflow as tf

# 从数组创建数据集
input_data = [1,2,3,4,5]
dataset = tf.data.Dataset.from_tensors(input_data)

# 定义一个迭代器用于遍历数据集
iterator = dataset.make_one_shot_iterator()
# get_next()返回代表一个输入数据的张量
x = iterator.get_next()
y = x * x

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(y))
# 输出:[ 1  4  9 16 25]

从文本文件创建数据集

import tensorflow as tf

# 从文本文件创建数据集,假定每行文字是一个训练的例子。一次可以提供多个文件
input_files = ['./img_list1.txt','./img_list2.txt']
dataset = tf.data.TextLineDataset(input_files)

iterator = dataset.make_one_shot_iterator()

# get_next()返回一个字符串类型的张量,代表文件中的一行
line = iterator.get_next()
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(len(input_files)):
        print(sess.run(line))

假设./img_list1.txt,./img_list2.txt中的内容分别是:

./test1.jpg
./test2.jpg

./test3.jpg

则输出为:

b'./test1.jpg'
b'./test2.jpg'
b'./test3.jpg'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值