Я пытаюсь использовать einsum
для выполнения тензорного умножения. Я работаю в MATLAB, но использую интерфейс python для вызова numpy.einsum
, как описано в этого Q & A . Ниже приведен код, который я использую для умножения:
np = py.importlib.import_module('numpy');
ndim = 3; i = eye(ndim);
I = np.einsum('il,jk',matpy.mat2nparray(i),matpy.mat2nparray(i));
I4 = matpy.nparray2mat(...
np.einsum('ijxyz,klxyz -> ijklxyz', I, matpy.mat2nparray(ones([30,30,30])) ));
Однако приведенный выше код завершается ошибкой со следующей ошибкой:
ValueError: einstein sum subscripts string contains too many subscripts for operand 0