最有效的方法来评估张量流量Tensor多输入

时间:2015-12-26 10:30:08

标签: python tensorflow

假设下面的例子中张量y被评估为x的几个值

import numpy as np
import tensorflow as tf

x = tf.placeholder(tf.float32, [None, 30])
w = tf.random_uniform((30, 100), 0, 1, dtype=tf.float32)
y = tf.reduce_mean(tf.matmul(x, w))

sess = tf.InteractiveSession()
init = tf.initialize_all_variables()
sess.run(init)

ris = []
for i in range(100):
    X = np.random.normal(0, 1, (200, 30))
    ris.append(y.eval(session=sess, feed_dict={x:X}))

print(ris)

我想知道对y.eval()的多次调用是否会减慢进程的速度,以及是否有更有效的方法来执行此操作。

1 个答案:

答案 0 :(得分:0)

我认为对多个值进行评估的最佳方法是将它们放在一个批处理中,并在一次调用eval()时对它们进行评估。在您的代码中,您可以创建100个200个小型集团 - 如果您想要快速评估,为什么不使用100 * 200的单批次?在某些情况下,可能会导致内存问题,但我认为这是尝试速度的第一件事。