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

时间:2015-12-21 21:01:28

标签: lua row apply torch elementwise-operations

我知道张量有一个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

我该怎么做?

2 个答案:

答案 0 :(得分:1)

请参阅此链接:Torch - Apply function over dimension

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

答案 1 :(得分:0)

一种可能性是expand B如下:

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

然后您可以直接使用element-wise multiplication

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))