计算多个输入值的变量值

时间:2017-06-22 18:24:23

标签: tensorflow

我有一个受过训练的张量流图。训练之后,我想为多个中间值采样一个变量。简化为:

a = tf.placeholder(tf.float32, [1])
b = a + 10
c = b * 10

现在,我想查询c的{​​{1}}值。目前,我正在使用外循环

b

这个循环需要相当多的时间,我认为这是因为b_values = [0, 1, 2, 3, 4, 5] samples = [] for b_value in b_values: samples += [sess.run(c, feed_dict={b: [b_value]})] 在我的情况下包含5000个值。有没有办法只运行b_values一次,并立即传递所有sess.run?我无法真正修改图b_values,但如果有帮助,我可以添加一些内容。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

import tensorflow as tf
import numpy as np
import time

a = tf.placeholder(tf.float32, [None,1])
b = a + 10
c = b * 10

sess = tf.Session()
b_values = np.random.randint(500,size=(5000,1))
samples = []
t =  time.time()
for b_value in b_values:
        samples += [sess.run(c,feed_dict={b: [b_value]})]

print time.time()-t
#print samples    

t=time.time()
samples =  sess.run(c,feed_dict={b:b_values})
print time.time()-t
#print samples

输出:(以秒为单位的时间)

0.874449968338
0.000532150268555

希望这有帮助!