Spec-Zone.ru › TensorFlow

tf.raw_ops.Einsum

Сжатие тензора в соответствии с соглашением об индексно-суммировании Эйнштейна.

Псевдонимы

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

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

tf.compat.v1.raw_ops.Einsum

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

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

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

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

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

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

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

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

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

(e) Расширение диагонали: Если выходные индексы содержат повторяющиеся (явные) метки осей, применяется обратная операция (a). Например, в уравнении 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.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/raw_ops/Einsum

Spec-Zone.ru

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