Я пытаюсь перевести операцию NumPy по частичному обновлению в TensorFlow.я хочу воспроизвести следующий минимальный пример:
input = np.arange(3 * 5).reshape((3, 5))
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
input[:, [0, 2]] = -1
array([[-1, 1, -1, 3, 4],
[-1, 6, -1, 8, 9],
[-1, 11, -1, 13, 14]])
Итак, я хочу установить постоянное значение для всех элементов определенных столбцов в массиве.
Теперь у меня есть тензоры вместоМассивы NumPy, индексы столбцов также рассчитываются динамически и сохраняются в Tensors.Я нашел, как обновить все значения в данных строках , используя tf.scatter_nd_update
:
input = tf.Variable(tf.reshape(tf.range(3 * 5, dtype=tf.int32), [3, 5]))
indices = tf.constant([[0], [2]])
updates = tf.constant([[-1, -1, -1, -1, -1], [-1, -1, -1, -1, -1]])
scatter = tf.scatter_nd_update(input, indices, updates)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(scatter))
Вывод:
[[-1 -1 -1 -1 -1]
[ 5 6 7 8 9]
[-1 -1 -1 -1 -1]]
Но как я могу сделать это дляопределенные столбцы?