РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
150 of 824 menu

Функция einsum

Функция einsum выполняет операции умножения и суммирования элементов тензоров по заданным индексам, используя нотацию Эйнштейна. Первым параметром функция принимает строку с уравнением, в котором указаны индексы входных и выходного тензоров. Далее передаются сами тензоры. Буквы в уравнении обозначают оси тензоров, а запятая разделяет операнды. Если индекс повторяется в разных тензорах, по нему выполняется суммирование. Если индекс отсутствует в правой части уравнения, он также суммируется.

Синтаксис

tf.einsum(equation, *inputs, [optimize])

Пример

Давайте перемножим два одномерных тензора и получим скаляр:

import tensorflow as tf t1 = tf.constant([1, 2, 3]) t2 = tf.constant([4, 5, 6]) res = tf.einsum('i,i->', t1, t2) print(res)

Результат выполнения кода:

tf.Tensor(32, shape=(), dtype=int32)

Пример

Давайте перемножим матрицу и вектор:

<+python+> import tensorflow as tf t1 = tf.constant([[1, 2, 3], [4, 5, 6]]) t2 = tf.constant([1, 2, 3]) res = tf.einsum('ij,j->i', t1, t2) print(res) <-python+>

Результат выполнения кода:

tf.Tensor([14 32], shape=(2,), dtype=int32)

Пример

Давайте найдем след матрицы, суммируя элементы по диагонали:

import tensorflow as tf t = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res = tf.einsum('ii->', t) print(res)

Результат выполнения кода:

tf.Tensor(15, shape=(), dtype=int32)

Пример

Давайте транспонируем матрицу, поменяв индексы местами:

import tensorflow as tf t = tf.constant([[1, 2, 3], [4, 5, 6]]) res = tf.einsum('ij->ji', t) print(res)

Результат выполнения кода:

tf.Tensor( [[1 4] [2 5] [3 6]], shape=(3, 2), dtype=int32)

Смотрите также

  • функцию matmul,
    которая выполняет матричное умножение тензоров
  • функцию tensordot,
    которая вычисляет скалярное произведение тензоров по осям
  • функцию multiply,
    которая выполняет поэлементное умножение тензоров
  • функцию reduce_sum,
    которая суммирует элементы тензора по осям
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить