Spec-Zone.ru › TensorFlow 1.15

tf.einsum

Просмотреть исходный код на GitHub

Сжатие тензора по указанным индексам и внешнее произведение.

Просмотр псевдонимов

Основные псевдонимы

tf.linalg.einsum

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительных сведений.

tf.compat.v1.einsum, tf.compat.v1.linalg.einsum, `tf.compat.v2.einsum`, `tf.compat.v2.linalg.einsum`

tf.einsum(
    equation, *inputs, **kwargs
)

Эта функция возвращает тензор, элементы которого определяются выражением equation, которое записано в сокращенной форме, вдохновленной соглашением об обозначении Эйнштейна. Например, рассмотрим умножение двух матриц A и B для получения матрицы C. Элементы C задаются следующим образом:

C[i,k] = sum_j A[i,j] * B[j,k]

Соответствующее выражение equation:

ij,jk->ik

В общем случае, выражение equation получается из более привычного уравнения с элементами по:

  1. удалению имен переменных, скобок и запятых,
  2. замене "*" на ",",
  3. удалению знаков суммирования и
  4. перемещению результата вправо и замене "=" на "->".

Многие общие операции могут быть выражены таким образом. Например:

# Matrix multiplication
>>> einsum('ij,jk->ik', m0, m1)  # output[i,k] = sum_j m0[i,j] * m1[j, k]

# Dot product
>>> einsum('i,i->', u, v)  # output = sum_i u[i]*v[i]

# Outer product
>>> einsum('i,j->ij', u, v)  # output[i,j] = u[i]*v[j]

# Transpose
>>> einsum('ij->ji', m)  # output[j,i] = m[i,j]

# Trace
>>> einsum('ii', m)  # output[j,i] = trace(m) = sum_i m[i, i]

# Batch matrix multiplication
>>> einsum('aij,ajk->aik', s, t)  # out[a,i,k] = sum_j s[a,i,j] * t[a, j, k]

Для включения и управления широковещательной передачей используйте многоточие. Например, для выполнения пакетного умножения матриц можно использовать:

einsum('...ij,...jk->...ik', u, v)

Эта функция ведет себя как numpy.einsum, но не поддерживает:

  • Подстрочные индексы, где ось появляется более одного раза для одного входного значения (например, ijj,k->ik), если это не след (например, ijji).
Аргументы
equation строка, описывающая сокращение в том же формате, что и numpy.einsum.
*inputs входные данные для сокращения (каждый - тензор), формы которых должны соответствовать equation.
name Имя операции (необязательно).
Возвращает
Сжатый тензор, форма которого определяется equation.
Исключения
ValueError Если
  • формат equation некорректен,
  • количество входных данных, подразумеваемых equation, не соответствует len(inputs),
  • ось присутствует в выходных подстрочных индексах, но отсутствует в любом из входных данных,
  • количество измерений входного значения отличается от количества индексов в его подстрочном индексе, или
  • формы входных данных несовместимы вдоль конкретной оси.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/einsum

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API