TensorArray TensorArray_1_0:无法读取TensorArray索引0,因为它尚未写入

时间:2017-02-09 14:35:38

标签: python tensorflow

我不知道如何使用tensorarray。这是代码。那是什么错误?

import tensorflow as tf

aI=tf.TensorArray(tf.int32, 2)
aO=tf.TensorArray(tf.int32, 2)
aI=aI.unpack([[1,2],[1,2]])
def body(i,aI,aO):
    aO.write(i, aI.read(i)+1)
    return (i+1, aI, aO)
cond=lambda i, *_ : i<2
_, _, aO=tf.while_loop(cond, body, [0,aI,aO])
r=aO.pack()
with tf.Session() as sess:
    res=sess.run(r)
    print('done!')

1 个答案:

答案 0 :(得分:6)

我解决了。似乎在body的{​​{1}}内,我们应该将旧的while_loop TensorArray重新分配给aO的返回值:

aO.write()

整个代码:

def body(i,aI,aO):
    aO=aO.write(i, aI.read(i)+1)
    return (i+1, aI, aO)