Как вычислить разложенное умножение тензорного вектора?

Я хотел бы измерить быстродействие различных тензорных разложений. Для этого я хотел бы рассчитать исходный тензор, умноженный на вектор, и разложенные тензорные элементы, умноженные на вектор.

Однако я не мог понять, как мне выполнять разложенные тензорные элементы во время векторной операции. В приведенном ниже коде пример

      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 умножение?

0 ответов

Другие вопросы по тегам