Оптимизированное умножение стробированной матрицы в Pytorch - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь реализовать определенный вид умножения матриц, при котором стробированная матрица умножается на весовую матрицу. Вещи, которые я намерен реализовать:

# x.shape = [70*20*1024,1]
# g.shape = [70*20*96*1*1]
# w.shape = [96*128*128]
g = g * weight0 # Cuda out of memory
g = g.view(70,20,1536,1024)
res = g@X

Но проблема в том, что когда я хочу умножить вентили (g) на весовые матрицы (weight0), возникает исключение Cuda out of memory, которое связано с вещанием в продукте Адамара (g*weight0). Как я могу решить эту проблему? Я имею в виду, как внедрить мой продукт Hadamard, чтобы использовать меньше памяти? Или в Pytorch есть функция для достижения того же результата с меньшим объемом памяти?

...