将函数应用到 Torch 中的每一行

问题描述 投票:0回答:3

我知道张量有一个

apply
方法,但这仅对每个元素应用一个函数。有没有一种优雅的方式来进行行式操作?例如,我可以将每一行乘以不同的值吗?

A =
  1 2 3
  4 5 6
  7 8 9

B =
  1
  2
  3

并且我想将 A 的第

i
行中的每个元素乘以 B 的第
i
元素以获得

1 2 3
8 10 12
21 24 27

我该怎么做?

lua row apply torch elementwise-operations
3个回答
2
投票

请参阅此链接:Torch - 在尺寸上应用函数

(感谢 Alexander Lutsenko 提供它。我只是将其移至答案。)


1
投票

一种可能性是扩展

B
,如下所示:

 1  1  1
 2  2  2
 3  3  3
[torch.DoubleTensor of size 3x3]

然后就可以直接使用逐元素乘法

local A = torch.Tensor{{1,2,3},{4,5,6},{7,8,9}}
local B = torch.Tensor{1,2,3}
local C = A:cmul(B:view(3,1):expand(3,3))

0
投票

这是一道线性代数问题。

转置(转置(A) * 对角矩阵 (1, 2, 3))

如果你想在 col-wise 中进行,则不需要转置。

© www.soinside.com 2019 - 2024. All rights reserved.