我想实现一个两轮for循环。
使用tf.while_loop
通过tensorflow实现两轮for循环的最佳方法是什么?
我希望它可能是这样的:
import tensorflow as tf
a = tf.constant([1,2,3,4,5])
b = tf.constant([1,2,3,4,5])
sess = tf.Session()
for i in tf.range(tf.constant(0),tf.shape(a)[0]):
for j in tf.range(tf.constant(0),tf.shape(b)[0]):
print(sess.run([i,j]))
有可能吗?
答案 0 :(得分:2)
您没有指定所需的行为,但我的猜测是您粘贴的代码不会达到预期效果。以下是您的一些选择:
tf.while_loop
。这将构造一个带有while循环的图形。运行这样的图形时,它将使用CPU或GPU在C ++运行时高效运行。for i in range(10):
)并对session.run()
进行多次调用。这样,在调用session.run()
之间需要执行的任何操作都将在python中发生并且可能很慢。例如,传递给session.run()
的输出张量将复制到CPU内存(如果主计算在GPU上完成)。通常不鼓励采用这种方法。