TensorFlow加载数据

简介:

1、Preload方式

     将数据直接内嵌到Graph中,再把Graph传入Session中运行。当数据量比较大时,Graph的传输会遇到效率问题。

1
2
3
4
5
6
7
8
import  tensorflow as tf
# 设计训练模型Graph
x1  =  tf.constant([ 2 3 4 ])
x2  =  tf.constant([ 4 0 1 ])
=  tf.add(x1, x2)
# 打开一个session --> 计算y
with tf.Session() as sess:
     print (sess.run(y))

输出:

    [6 3 5]

注:在设计Graph的时候,x1和x2就被定义成了两个有值的列表,在计算y的时候直接取x1和x2的值。


2、Feeding方式

       用占位符替代数据,待运行的时候填充数据。

1
2
3
4
5
6
7
8
9
10
11
import  tensorflow as tf
# 设计Graph
x1  =  tf.placeholder(tf.int32)
x2  =  tf.placeholder(tf.int32)
=  tf.add(x1, x2)
# 用Python产生数据
input1  =  [ 2 3 4 ]
input2  =  [ 4 0 1 ]
# 打开一个session --> 喂数据 --> 计算y
with tf.Session() as sess:
     print  (sess.run(y, feed_dict = {x1: input1, x2: input2}))

输出:

    [6 3 5]

注:在这里x1, x2只是占位符,没有具体的值,那么运行的时候就要用到sess.run()中的feed_dict参数,将Python产生的数据喂给后端,并计算y。


3、Reading From File

       前两种方法很方便,但是遇到大型数据的时候就会很吃力,即使是Feeding,中间环节的增加也是不小的开销,比如数据类型转换等等。最优的方案就是在Graph定义好文件读取的方法,让TF自己去从文件中读取数据,并解码成可使用的样本集。

wKioL1jWeRDxedqkAAffvW-ZRvo689.gif


      首先由一个单线程把文件名堆入队列,两个Reader同时从队列中取文件名并读取数据,Decoder将读出的数据解码后堆入样本队列,最后单个或批量取出样本(图中没有展示样本出列)。

3.1 单个Reader

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import  tensorflow as tf
# 生成一个先入先出队列和一个QueueRunner
filenames  =  [ 'A.csv' 'B.csv' 'C.csv' ]
filename_queue  =  tf.train.string_input_producer(filenames, shuffle = True )
# 定义Reader
reader  =  tf.TextLineReader()
key, value  =  reader.read(filename_queue)
# 定义Decoder
record_defaults = [[ 'null' ], [ 'null' ]]
col1, col2  =  tf.decode_csv(value, record_defaults)
# 运行Graph
with tf.Session() as sess:
     # 创建一个协调器,管理线程
     coord  =  tf.train.Coordinator()
     # 启动QueueRunner, 此时文件名队列已经进队
     threads  =  tf.train.start_queue_runners(coord = coord)
     # 取样本的时候,一个Reader先从文件名队列中取出文件名,读出数据,Decoder解析后进入样本队列
     for  in  range ( 10 ):
         print  (col1. eval (),col2. eval ())
     coord.request_stop()
     coord.join(threads)

输出:      

    b'Sea1' b'C2'

    b'Sea3' b'A1'

    b'Alpha2' b'A3'

    b'Bee1' b'B2'

    b'Bee3' b'C1'

    b'Sea2' b'C3'

    b'Alpha1' b'A2'

    b'Alpha3' b'B1'

    b'Bee2' b'B3'

    b'Bee1' b'B2'

3.2 单个Reader




     本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1910372,如需转载请自行联系原作者





相关文章
|
4月前
|
数据挖掘 PyTorch TensorFlow
|
4月前
|
机器学习/深度学习 数据挖掘 TensorFlow
🔍揭秘Python数据分析奥秘,TensorFlow助力解锁数据背后的亿万商机
【9月更文挑战第11天】在信息爆炸的时代,数据如沉睡的宝藏,等待发掘。Python以简洁的语法和丰富的库生态成为数据分析的首选,而TensorFlow则为深度学习赋能,助你洞察数据核心,解锁商机。通过Pandas库,我们可以轻松处理结构化数据,进行统计分析和可视化;TensorFlow则能构建复杂的神经网络模型,捕捉非线性关系,提升预测准确性。两者的结合,让你在商业竞争中脱颖而出,把握市场脉搏,释放数据的无限价值。以下是使用Pandas进行简单数据分析的示例:
52 5
|
4月前
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
79 0
|
6月前
|
数据挖掘 PyTorch TensorFlow
Python数据分析新纪元:TensorFlow与PyTorch双剑合璧,深度挖掘数据价值
【7月更文挑战第30天】随着大数据时代的发展,数据分析变得至关重要,深度学习作为其前沿技术,正推动数据分析进入新阶段。本文介绍如何结合使用TensorFlow和PyTorch两大深度学习框架,最大化数据价值。
126 8
|
5月前
|
缓存 开发者 测试技术
跨平台应用开发必备秘籍:运用 Uno Platform 打造高性能与优雅设计兼备的多平台应用,全面解析从代码共享到最佳实践的每一个细节
【8月更文挑战第31天】Uno Platform 是一种强大的工具,允许开发者使用 C# 和 XAML 构建跨平台应用。本文探讨了 Uno Platform 中实现跨平台应用的最佳实践,包括代码共享、平台特定功能、性能优化及测试等方面。通过共享代码、采用 MVVM 模式、使用条件编译指令以及优化性能,开发者可以高效构建高质量应用。Uno Platform 支持多种测试方法,确保应用在各平台上的稳定性和可靠性。这使得 Uno Platform 成为个人项目和企业应用的理想选择。
86 0
|
5月前
|
机器学习/深度学习 缓存 TensorFlow
TensorFlow 数据管道优化超重要!掌握这些关键技巧,大幅提升模型训练效率!
【8月更文挑战第31天】在机器学习领域,高效的数据处理对构建优秀模型至关重要。TensorFlow作为深度学习框架,其数据管道优化能显著提升模型训练效率。数据管道如同模型生命线,负责将原始数据转化为可理解形式。低效的数据管道会限制模型性能,即便模型架构先进。优化方法包括:合理利用数据加载与预处理功能,使用`tf.data.Dataset` API并行读取文件;使用`tf.image`进行图像数据增强;缓存数据避免重复读取,使用`cache`和`prefetch`方法提高效率。通过这些方法,可以大幅提升数据管道效率,加快模型训练速度。
57 0
|
6月前
|
机器学习/深度学习 数据挖掘 TensorFlow
🔍揭秘Python数据分析奥秘,TensorFlow助力解锁数据背后的亿万商机
【7月更文挑战第29天】在数据丰富的时代,Python以其简洁和强大的库支持成为数据分析首选。Pandas库简化了数据处理与分析,如读取CSV文件、执行统计分析及可视化销售趋势。TensorFlow则通过深度学习技术挖掘复杂数据模式,提升预测准确性。两者结合助力商业决策,把握市场先机,释放数据巨大价值。
55 4
|
6月前
|
机器学习/深度学习 数据挖掘 TensorFlow
数据界的“福尔摩斯”如何炼成?Python+TensorFlow数据分析实战全攻略
【7月更文挑战第30天】数据界的“福尔摩斯”运用Python与TensorFlow解开数据之谜。
59 2
|
6月前
|
机器学习/深度学习 数据挖掘 TensorFlow
|
6月前
|
机器学习/深度学习 PyTorch TensorFlow
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。