Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyTorch:PyTorch中的numpy.linalg.multi_dot()等价物是什么_Python_Numpy_Pytorch_Matrix Multiplication - Fatal编程技术网

Python PyTorch:PyTorch中的numpy.linalg.multi_dot()等价物是什么

Python PyTorch:PyTorch中的numpy.linalg.multi_dot()等价物是什么,python,numpy,pytorch,matrix-multiplication,Python,Numpy,Pytorch,Matrix Multiplication,我试图在PyTorch中执行多个矩阵的矩阵乘法,我想知道PyTorch中的numpy.linalg.multi_dot()的等价物是什么 如果没有,那么在PyTorch中,下一个最好的方法(在速度和内存方面)是什么 代码: 非常感谢 ~~看起来可以将张量发送到多点~~ 看起来numpy实现将所有内容都强制转换到numpy阵列中。如果你的张量在cpu上并且分离,这应该可以工作。否则,到numpy的转换将失败 因此,总的来说,很可能没有其他选择。我认为你最好的办法是使用多点实现,例如,调整它以处理张

我试图在PyTorch中执行多个矩阵的矩阵乘法,我想知道PyTorch中的
numpy.linalg.multi_dot()
的等价物是什么

如果没有,那么在PyTorch中,下一个最好的方法(在速度和内存方面)是什么

代码:


非常感谢

~~看起来可以将张量发送到多点~~

看起来numpy实现将所有内容都强制转换到numpy阵列中。如果你的张量在cpu上并且分离,这应该可以工作。否则,到numpy的转换将失败


因此,总的来说,很可能没有其他选择。我认为你最好的办法是使用
多点
实现,例如,调整它以处理张量/跳过转换为numpy。考虑到类似的界面和代码的简单性,我认为这应该是非常简单的。

我需要在GPU中运行代码,所以我不认为我可以在GPU中使用任何numpy函数,对吗?是的-只是在GPU上用张量再次尝试,但它不起作用(更新了答案)…是的,这不会自动选择最佳顺序(我想对于三个矩阵,如果需要的话,手动操作应该不会很痛苦。)好的,非常感谢@Yuri Feldman。当我有时间的时候,我会把它作为一个小型项目放在我的待办事项列表中,为PyTorch做贡献:)
multidot
仅在阵列形状不同时才有用,一个计算顺序更快。
multidot
A@B@C
import numpy as np
import torch

A = np.random.rand(3, 3)
B = np.random.rand(3, 3)
C = np.random.rand(3, 3)

results = np.linalg.multi_dot(A, B, C)

A_tsr = torch.tensor(A)
B_tsr = torch.tensor(B)
C_tsr = torch.tensor(C)

# What is the PyTorch equivalent of np.linalg.multi_dot()?