TensorFlow加载数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow加载数据相关的知识,希望对你有一定的参考价值。

1、Preload方式

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

import tensorflow as tf
# 设计训练模型Graph
x1 = tf.constant([2, 3, 4])
x2 = tf.constant([4, 0, 1])
y = 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方式

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

import tensorflow as tf
# 设计Graph
x1 = tf.placeholder(tf.int32)
x2 = tf.placeholder(tf.int32)
y = 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自己去从文件中读取数据,并解码成可使用的样本集。

技术分享


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




本文出自 “IT技术学习与交流” 博客,谢绝转载!

以上是关于TensorFlow加载数据的主要内容,如果未能解决你的问题,请参考以下文章

用于数据加载的 Android 活动/片段职责

如何在android中将json数据加载到片段中

如何使用 ViewPager 显示相同的片段,但每次加载不同的数据?

TensorFlow 更好的模型加载

TensorFlow中数据读取之tfrecords

Android:NullPointerException 无法将数据库加载到片段内的列表视图中