我有大小为n的d向量和一个d x d矩阵J。我想用每个n向量计算J的矩阵向量乘法.对于这一点,我使用pytorch的expand()来获得J的广播,但是在计算矩阵向量积时,Py手电似乎在内存中实例化了一个完整的n x d x d张量。11.00 GiB total capacity; 3.73 GiB already allocated; 5.69 GiB free; 3.73 GiB reserved in total by PyTorch<
其中x是长度为n的向量,v是长度为n的向量,w是大小为n×n的上三角矩阵,t是大小为n×n的秩4张量。最简单的实现是在每个索引上循环: for i in range(0,len(x)): for k in range(0,lenfor l in range(0,len(x)):
y += t[i,j,k,l] * x[i] * x[j] * x[k] * x[l] 前两项很容易计算: y = u @ x + x @