(tensorflowバージョン: '0.12.headは')TensorArray.close()を呼び出す効果は何ですか?
TensorArray.close
のドキュメントは、それが現在のTensorArrayを閉じと言います。 TensorArray
のステータスはどういう意味ですか?次のコードを試してみます
import tensorflow as tf
sess = tf.InteractiveSession()
a1 = tf.TensorArray(tf.int32, 2)
a1.close().run()
a2 = a1.write(0, 0)
a2.close().run()
print(a2.read(0).eval())
エラーはありません。 close
の用途は何ですか?
Learning-to-learn includes TensorArray.close
in the reset operations of the network。コメントEmpty array as part of the reset processの意味を理解できません。
更新例について
、
import tensorflow as tf
sess = tf.InteractiveSession()
N = 3
def cond(i, arr):
return i < N
def body(i, arr):
arr = arr.write(i, i)
i += 1
return i, arr
arr = tf.TensorArray(tf.int32, N)
_, result_arr = tf.while_loop(cond, body, [0, arr])
reset = arr.close() # corresponds to https://github.com/deepmind/learning-to-learn/blob/6ee52539e83d0452051fe08699b5d8436442f803/meta.py#L370
NUM_EPOCHS = 3
for _ in range(NUM_EPOCHS):
reset.run() # corresponds to https://github.com/deepmind/learning-to-learn/blob/6ee52539e83d0452051fe08699b5d8436442f803/util.py#L32
print(result_arr.stack().eval())
はなぜarr.close()
whileループは失敗がありませんか?各エポックの初めにarr.close()を呼び出す利点は何ですか?
ありがとうございました@Yaroslav Bulatov。 docstringを読むと私はもっと混乱します。これにより、 ユーザーはステップ/実行の途中でリソースを閉じて解放することができます._さらに、TensorArrayが内部で閉じているかどうかをチェックするため、TensorArrayへの呼び出しが失敗します。_ 質問。学習の学習では、各エポックの初めにTensorArray.closeを呼び出します。'close'によってTensorArrayへのさらなる呼び出しが失敗すると、何を意味するのか分かりません。 – Jenny
私は混乱していますが、この使用法はドキュメントと矛盾しているようです –
@sirfzの答えによると、 'TensorArray'の状態は各実行で独立しているようです。 – Jenny