TypeError:“张量”对象不能解释为整数

RDK*_*RDK 5 python variables size shape tensorflow

我正在尝试根据数组的大小运行循环。如何在张量流中做到这一点?例如

# 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))
Run Code Online (Sandbox Code Playgroud)

我想将数组a打印5次。但是它说loop是一个张量对象,不能作为整数。我尝试将循环变量作为

loop = tf.cast(tf.size(a),tf.int32),
loop = tf.shape_n(a),
loop = tf.shape(a)[0]
Run Code Online (Sandbox Code Playgroud)

它具有相同的错误。

gui*_*nny 3

不太确定你想在这里实现什么。loop是 atf.Tensor并且range需要一个integer作为参数,因此会出现错误。如果你只想打印a5次,为什么不将loop设置为数值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))
Run Code Online (Sandbox Code Playgroud)

如果您不想多次执行 TF 图,请查看tf.while_loop