2017-02-09 15 views
2

我不知道如何使用tensorarray。這是代碼。那有什麼錯誤?TensorArray TensorArray_1_0:無法從TensorArray索引0讀取,因爲它尚未寫入

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

回答

2

我解決了。看來我們應該用aO.write的返回值替換舊的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!') 
+0

您能否請標記答案是正確的? – petrux

相關問題