在pytorch中将矩阵行乘以矢量逐元素矢量?

时间:2019-09-15 19:55:02

标签: python pytorch vector-multiplication

我想执行以下操作,但要使用 PyTorch

下面的示例和说明来自此post

  

我有一个25列23行的数值矩阵,以及一个向量   长度25。如何将矩阵的每一行乘以向量   不使用for循环?

     

结果应为25x23矩阵(与输入大小相同),但   每行都已乘以向量。

R中的示例代码(来源:reproducible example from @hatmatrix's answer):

matrix <- matrix(rep(1:3,each=5),nrow=3,ncol=5,byrow=TRUE)

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    1    1    1    1
[2,]    2    2    2    2    2
[3,]    3    3    3    3    3

vector <- 1:5

所需的输出:

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    2    4    6    8   10
[3,]    3    6    9   12   15

使用Pytorch的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

答案是如此琐碎,以至于我忽略了它。

为简单起见,我在此答案中使用了较小的向量和矩阵。

X = torch.tensor([[3, 5],[5, 5],[1, 0]])                                                                                                                                                                          
y = torch.tensor([7,4])                                                                                                                                                                                   
X*y
# or alternatively
y*X

输出:

tensor([[21, 20],
        [35, 20],
        [ 7,  0]])

tensor([[21, 20],
        [35, 20],
        [ 7,  0]])