Функция linalg.set_diag
Функция linalg.set_diag устанавливает
переданные значения на диагональ тензора.
Первым параметром функция принимает исходный
тензор, вторым - значения диагонали. Третьим
необязательным параметром можно передать
смещение диагонали. Функция возвращает новый
тензор с измененной диагональю.
Синтаксис
tf.linalg.set_diag(input, diagonal, [k])
Пример
Давайте создадим квадратный тензор и установим новые значения на его главной диагонали:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = tf.linalg.set_diag(t, [10, 11, 12])
print(res)
Результат выполнения кода:
tf.Tensor(
[[10 2 3]
[ 4 11 6]
[ 7 8 12]], shape=(3, 3), dtype=int32)
Пример
Давайте установим значения на диагональ, смещенную на одну позицию вправо:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = tf.linalg.set_diag(t, [10, 11], k=1)
print(res)
Результат выполнения кода:
tf.Tensor(
[[ 1 10 3]
[ 4 5 11]
[ 7 8 9]], shape=(3, 3), dtype=int32)
Пример
Давайте установим значения на диагональ, смещенную на одну позицию влево:
<+python+>
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = tf.linalg.set_diag(t, [10, 11], k=-1)
print(res)
<-python+>
Результат выполнения кода:
tf.Tensor(
[[ 1 2 3]
[10 5 6]
[ 7 11 9]], shape=(3, 3), dtype=int32)