Обновить фрагмент или столбец в тензоре

#python #numpy #tensorflow

#python #numpy #tensorflow

Вопрос:

Я пытаюсь обновить весь столбец, независимо от формы тензора, также индекс столбца может быть любым в пределах диапазона формы.

  tensor = tf.Variable(tf.ones((5,5)))
  

Я пытаюсь выполнить эту операцию numpy:

  tensor[:,2] = 0

 [ 1 1 0 1 1 ]
 [ 1 1 0 1 1 ]
 [ 1 1 0 1 1 ]
 [ 1 1 0 1 1 ]
 [ 1 1 0 1 1 ]
  

Я пытался использовать tf.scatter_update, но безуспешно.

Ответ №1:

Если вы не возражаете против создания нового тензора, вы могли бы попробовать:

 import tensorflow as tf

t = tf.Variable(tf.ones((5,5)))
s0, s1, s2 = tf.split(t, [2, 1, 2], axis=1)
s = tf.concat([s0,tf.zeros((5,1)),s2], axis=1)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    y = sess.run(s)
    print(y)
  

Комментарии:

1. Я рассматривал этот способ, но проблема в том, как я уже говорил, я хочу, чтобы это работало с любой формой.

2. и выбрать любой столбец.