Я обнаружил, что 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()
Но как присвоить значения 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()
Есть ли какая-либо другая функция, которую обеспечивает TF, или простой способ сделать это?