Spec-Zone.ru › TensorFlow 2.3

tf.raw_ops.Einsum

Вычисление тензорного сокращения в соответствии с соглашением Эйнштейна о суммировании.

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

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

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

tf.compat.v1.raw_ops.Einsum

tf.raw_ops.Einsum(
    inputs, equation, name=None
)

Реализует обобщенное сокращение и сворачивание тензоров. Каждый входной тензор должен иметь соответствующий входной индекс, отображаемый в левой части уравнения, разделенной запятыми. Правая часть уравнения состоит из выходного индекса. Входные индексы и выходной индекс должны состоять из нуля или более именованных меток осей и не более одной многоточия (...).

Именованные метки осей могут быть любыми одиночными символами, кроме тех, которые имеют специальное значение, а именно ,.->. Поведение этого Оператора не определено, если он получает уравнение с неправильным форматом; так как проверка выполняется на этапе построения графа, мы опускаем проверки формата на этапе выполнения.

Примечание: Этот Оператор не предназначен для вызова пользователем; вместо этого пользователи должны вызывать tf.einsum напрямую. Это скрытый Оператор, используемый tf.einsum.

Операции применяются к входу(ам) в соответствии со следующими правилами:

(а) Обобщенные диагонали: для входных измерений, соответствующих меткам осей, которые появляются более одного раза в одном входном индексе, мы берем обобщенную (k-мерную) диагональ. Например, в уравнении iii->i с формой входных данных [3, 3, 3], обобщенная диагональ будет состоять из 3 элементов в индексах (0, 0, 0), (1, 1, 1) и (2, 2, 2) для создания тензора формы [3].

(б) Сворачивание: оси, соответствующие меткам, которые появляются только в одном входном индексе, но не в выходном индексе, суммируются перед сокращением тензоров. Например, в уравнении ab,bc->b, метки осей a и c являются метками осей сворачивания.

(в) Размеры пакета: оси, соответствующие меткам, которые появляются в каждом из входных индексов и также в выходном индексе, составляют размер пакета при сокращении тензоров. Неименованные метки осей, соответствующие многоточию (...), также соответствуют размерам пакета. Например, в уравнении, обозначающем матричное умножение с пакетом, bij,bjk->bik, метка оси b соответствует размеру пакета.

(г) Сокращение: в случае бинарного einsum, оси, соответствующие меткам, которые появляются в двух разных входах (и не в выходе), сокращаются друг против друга. Рассмотрим снова уравнение матричного умножения с пакетом (bij,bjk->bik), сокращаемая метка оси — j.

(д) Расширение диагонали: если выходные индексы содержат повторяющиеся (явные) метки осей, применяется операция, обратная (а). Например, в уравнении i->iii, и форме входных данных [3], выходная форма [3, 3, 3] — все нули, за исключением (обобщенной) диагонали, которая заполняется значениями из входных данных. Примечание: эта операция не поддерживается np.einsum или tf.einsum; она предоставлена для возможности вычисления символического градиента tf.einsum.

Выходные индексы должны содержать только метки, которые появляются по крайней мере в одном из входных индексов. Кроме того, все измерения, сопоставленные с одной и той же меткой оси, должны быть равны.

Любой из входных и выходных индексов может содержать не более одной многоточия (...). Эти многоточия сопоставляются с измерениями, не соответствующими никакой именованной метке оси. Если два входа содержат многоточия, они транслируются в соответствии со стандартными правилами трансляции NumPy правила.

Транслированные размеры размещаются в соответствующем месте многоточия в выходном индексе. Если транслированные размеры непустые, а выходные индексы не содержат многоточия, то генерируется ошибка InvalidArgument.

Аргументы
inputs Список из как минимум 1 Tensor объекта с одинаковым типом. Список из 1 или 2 тензоров.
equation string. Строка, описывающая операцию Эйнштейна по суммированию; в формате np.einsum.
name Имя операции (необязательно).
Возвращаемое значение
Tensor. Имеет тот же тип, что и inputs.

Совместимость с NumPy

Аналогично numpy.einsum.

Сравнение с numpy.einsum:

  • Этот Оператор поддерживает только унарные и бинарные формы numpy.einsum.
  • Этот Оператор не поддерживает неявную форму. (т. е. уравнения без ->).
  • Этот Оператор также поддерживает повторяющиеся индексы в выходном индексе, что не поддерживается numpy.einsum.

© 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/r2.3/api_docs/python/tf/raw_ops/Einsum

Spec-Zone.ru

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