我发现Tensorflow提供了scatter_update()
为0维度中的张量切片赋值.例如,如果张量T
是三维的,我可以赋值v[1, :, :]
给T[i, :, :]
.
a = tf.Variable(tf.zeros([10,36,36]))
value = np.ones([1,36,36])
d = tf.scatter_update(a,[0],value)
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
print a.eval()
sess.run(d)
print a.eval()
Run Code Online (Sandbox Code Playgroud)
但是如何赋值v[1,1,:]
给T[i,j,:]
?
a = tf.Variable(tf.zeros([10,36,36]))
value1 = np.random.randn(1,1,36)
e = tf.scatter_update(a,[0],value1) #Error
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
print a.eval()
sess.rum(e)
print a.eval()
Run Code Online (Sandbox Code Playgroud)
是否有TF提供的其他功能或简单的方法?