对Torch中的每一行应用函数。

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

如何做到这一点呢?

点赞
用户1688185
用户1688185

一种可能性是按以下方式扩展B

 1  1  1
 2  2  2
 3  3  3
[torch.DoubleTensor 大小为 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))
2015-12-22 08:26:03
用户1001930
用户1001930

查看此链接:Torch-对维度执行函数

(感谢Alexander Lutsenko提供此链接。我只是将其移至答案中。)

2015-12-23 14:23:12