tf.tensordot
Свёртка тензоров a и b по заданным осям и внешнее произведение.
tf.tensordot(
a, b, axes, name=None
)
Tensordot (также известная как свёртка тензоров) суммирует произведения элементов a и b по индексам, заданным в axes.
Эта операция соответствует numpy.tensordot(a, b, axes).
Пример 1. Если a и b — матрицы (порядка 2), случай axes=1 эквивалентен умножению матриц.
Пример 2. Если a и b — матрицы (порядка 2), случай axes = [[1], [0]] эквивалентен умножению матриц.
Пример 3. Если a и b — матрицы (порядка 2), случай axes=0 даёт внешнее произведение — тензор порядка 4.
Пример 4. Пусть \(a_{ijk}\) и \(b_{lmn}\) обозначают два тензора порядка 3. Тогда contract(a, b, [[0], [2]]) — это тензор порядка 4 \(c_{jklm}\), элемент которого с индексами \((j,k,l,m)\) задаётся формулой:
\( c_{jklm} = \sum_i a_{ijk} b_{lmi} \).
В общем случае order(c) = order(a) + order(b) - 2*len(axes[0]).
| Аргументы | |
|---|---|
a | Tensor типа float32 или float64. |
b | Tensor того же типа, что и a. |
axes | Скалярное значение N либо список или int32 Tensor формы [2, k]. Если axes — скаляр, суммируются последние N осей a и первые N осей b по порядку. Если axes — список или Tensor, первая и вторая строки содержат наборы уникальных целых чисел, задающих оси, по которым вычисляется свёртка, соответственно для a и b. Количество осей для a и b должно совпадать. Если axes=0, вычисляется внешнее произведение a и b. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Tensor того же типа, что и a. |
| Вызывает исключения | |
|---|---|
ValueError | Если формы a, b и axes несовместимы. |
IndexError | Если значения в axes превышают ранг соответствующего тензора. |
© 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/tensordot