我正在尝试根据数组的大小运行循环。如何在张量流中做到这一点?例如
# input pipeline with all files available in the folder
a = tf.Variable([1,2,3,4,5],dtype = tf.int32)
loop = tf.size(a)
....
for i in range(loop):
print(sess.run(a))
我想打印数组a 5次。但它说循环是一个张量对象,不能作为整数。 我试过把循环变量作为
loop = tf.cast(tf.size(a),tf.int32),
loop = tf.shape_n(a),
loop = tf.shape(a)[0]
它有同样的错误。
答案 0 :(得分:3)
不确定你想在这里实现什么。 loop
是tf.Tensor
,range
期望integer
为参数,因此出错。如果您只想打印5次,为什么不设置循环数值为5?
否则,以下代码应该有效,因为loop.eval()
返回loop
的值为5:
a = tf.Variable([1,2,3,4,5],dtype = tf.int32)
loop = tf.size(a)
....
for i in range(loop.eval()):
print(sess.run(a))
如果您不想多次执行TF图表,请查看tf.while_loop。
答案 1 :(得分:2)
tf.size()
没有为您提供值或列表。
a = tf.Variable([1,2,3,4,5],dtype = tf.int32)
v = a.get_shape()
loop = v.num_elements()
...
也许,试试这个。