gpt4 book ai didi

python - 张量数组 TensorArray_1_0 : Could not read from TensorArray index 0 because it has not yet been written to

转载 作者:太空狗 更新时间:2023-10-30 00:59:22 26 4
gpt4 key购买 nike

我不知道如何使用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!')

最佳答案

我解决了。似乎在 while_loopbody 中,我们应该用 的返回值重新分配旧的 TensorArray aO >aO.write():

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

完整代码:

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=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!')

关于python - 张量数组 TensorArray_1_0 : Could not read from TensorArray index 0 because it has not yet been written to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42139446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com