Как вычислить разложенное умножение тензорного вектора?
Я хотел бы измерить быстродействие различных тензорных разложений. Для этого я хотел бы рассчитать исходный тензор, умноженный на вектор, и разложенные тензорные элементы, умноженные на вектор.
Однако я не мог понять, как мне выполнять разложенные тензорные элементы во время векторной операции. В приведенном ниже коде пример
import numpy as np
from tensorly.decomposition import tucker
origTensor = np.random.randint(20, size = (46,32,20))
origTensor = origTensor.astype(np.float64)
vecR = np.random.randint(5, size = origTensor.shape[-1])
core, factors = tucker(origTensor, rank = [20,8,4])
print(core.shape)
print(factors[0].shape)
print(factors[1].shape)
print(factors[2].shape)
даст мне форму приведенного выше:
Out:
(20, 8, 4)
(46, 20)
(32, 8)
(20, 4)
Как можно умножить
core
,
factors
, а символ
origTensor
,
vecR
умножение?