私は4つのノードで分散テンソルを学習するサンプルプログラムを書いています。私のプログラムは単純な数値配列に値を代入することから成っています。次に、それらをテンソルフロー配列に変換して、基本的な算術加算演算を行います。出力を別のテンソルフローアレイに保存します。最後に、この配列をテンソルに変換して出力に出力します。Tensorarrayの初期化
import tensorflow as tf
import numpy as np
import datetime
u1 = tf.TensorArray(dtype=tf.float64,size=101)
u2 = tf.TensorArray(dtype=tf.float64,size=101)
u3 = tf.TensorArray(dtype=tf.float64,size=101)
u4 = tf.TensorArray(dtype=tf.float64,size=101)
u5 = tf.Variable(np.zeros(101))
u = np.zeros(101)
a = tf.Variable(0, dtype=tf.float64)
L = 100.0
x = tf.constant(2, dtype=tf.float64)
t1 = datetime.datetime.now()
with tf.device("/job:local/task:3"):
for i in range(2):
for j in range(101):
# u[j] = (np.sin(2*np.pi*j/L))
u[j] = j
u1 = u1.write(j,u[j])
u2 = u2.write(j,u[j])
u3 = u3.write(j,u1.read(j)+u2.read(j))
u4 = u3.pack()
assign = tf.assign(u5, u3(100))
model = tf.initialize_all_variables()
with tf.Session("grpc://localhost:2222") as sess:
sess.run(model)
print sess.run(u4)
print sess.run(assign)
# print (u4.eval())
t2 = datetime.datetime.now()
print('\n')
print "Multi node computation time: " + str(t2-t1)
テンソルアレイu1、u2、u3、u4を上書きします。 -
InvalidArgumentError (see above for traceback): TensorArray TensorArray_1_21: Could not write to TensorArray index 0 because it has already been read.
最初のforループの後に使用されたテンソルアレイを初期化する方法はありますか?助けてください。