numpy.tensordot
numpy.tensordot(a, b, axes=2)
Функция tensordot() вычисляет тензорное скалярное произведение двух массивов вдоль указанных осей.
-
- a, b - массивы NumPy или подобные массивам объекты.
- Массивы с размерностью большей или равной 1.
- axes - целое положительное число или массив [a_axes, b_axes].
- Если указано число n, то вычисляется сумма по n последним осям массива a и n первым осям массива b. Размеры соответствующих осей a и b должны совпадать. Если указан массив из двух подмассивов a_axes и b_axes, то первая последовательность применяется к массиву a, а вторая к b. Длина подмассивов a_axes и b_axes должна быть одинаковой.
-
- результат - массив NumPy или число
- Тензорное скалярное произведение двух массивов.
Примеры
В зависимости от указанных осей получается разный результат тензорного произведения:
>>> a = np.arange(12).reshape(2, 2, 3)
>>> b = np.arange(12).reshape(2, 3, 2)
>>>
>>> np.tensordot(a, b, axes = 2) # axes = 2 по умолчанию
array([[110, 125],
[290, 341]])
>>>
>>> np.tensordot(a, b, axes = [[0, 1], [0, 2]])
array([[102, 138, 174],
[116, 160, 204],
[130, 182, 234]])
>>>
>>> np.tensordot(a, b, axes = [[2], [1]])
array([[[[ 10, 13],
[ 28, 31]],
[[ 28, 40],
[100, 112]]],
[[[ 46, 67],
[172, 193]],
[[ 64, 94],
[244, 274]]]])