假设下面的例子中张量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()
的多次调用是否会减慢进程的速度,以及是否有更有效的方法来执行此操作。
答案 0 :(得分:0)
我认为对多个值进行评估的最佳方法是将它们放在一个批处理中,并在一次调用eval()时对它们进行评估。在您的代码中,您可以创建100个200个小型集团 - 如果您想要快速评估,为什么不使用100 * 200的单批次?在某些情况下,可能会导致内存问题,但我认为这是尝试速度的第一件事。