Функция linalg.trace
Функция linalg.trace вычисляет сумму элементов по главной диагонали входного тензора.
Функция применяется к данным, первым параметром передаётся тензор или массив.
Вторым параметром можно передать смещение диагонали относительно главной.
По умолчанию смещение равно нулю и суммируются элементы главной диагонали.
Функция возвращает скалярный тензор с суммой элементов диагонали.
Синтаксис
tf.linalg.trace(input, [offset])
Пример
Давайте создадим квадратную матрицу и вычислим сумму элементов главной диагонали:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = tf.linalg.trace(t)
print(res)
Результат выполнения кода:
tf.Tensor(15, shape=(), dtype=int32)
Пример
Давайте вычислим след с использованием смещения 1, чтобы суммировать элементы диагонали выше главной:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = tf.linalg.trace(t, offset=1)
print(res)
Результат выполнения кода:
tf.Tensor(8, shape=(), dtype=int32)
Пример
Давайте вычислим след с использованием отрицательного смещения -1, чтобы суммировать элементы диагонали ниже главной:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = tf.linalg.trace(t, offset=-1)
print(res)
Результат выполнения кода:
tf.Tensor(12, shape=(), dtype=int32)