Я пытаюсь использовать функцию scatter_nd в TensorFlow для изменения порядка элементов в строках матрицы. Например, предположим, что у меня есть код:Перемещение элементов внутри строк и столбцов матрицы - TensorFlow scatter_nd
indices = tf.constant([[1],[0]])
updates = tf.constant([ [5, 6, 7, 8],
[1, 2, 3, 4] ])
shape = tf.constant([2, 4])
scatter1 = tf.scatter_nd(indices, updates, shape)
$ print(scatter1) = [[1,2,3,4]
[5,6,7,8]]
Это переупорядочивает строки в updates
матрицы.
Вместо того, чтобы изменять порядок строк, я хотел бы также изменить порядок отдельных элементов в каждой строке. Если у меня только есть вектор (Тензор ранга 1), то этот пример работает:
indices = tf.constant([[1],[0],[2],[3]])
updates = tf.constant([5, 6, 7, 8])
shape = tf.constant([4])
scatter2 = tf.scatter_nd(indices, updates, shape)
$ print(scatter2) = [6,5,7,8]
Что я действительно забочусь о том, чтобы иметь возможность поменять местами элементы в каждой строке в scatter1
, как я сделал в scatter2
, но сделайте это для каждой строки scatter1
. Я пробовал различные комбинации indices
, но продолжаю получать ошибки, которые не соответствуют строкам, заданными функцией scatter_nd
.