【问题标题】:Apply function to each row in Torch将函数应用于 Torch 中的每一行
【发布时间】:2015-12-21 21:01:27
【问题描述】:

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

说

A =
  1 2 3
  4 5 6
  7 8 9

和

B =
  1
  2
  3

我想将 A 的 ith 行中的每个元素乘以 B 的 ith 元素得到

1 2 3
8 10 12
21 24 27

我该怎么做?

【问题讨论】:

标签: lua row apply torch elementwise-operations


【解决方案1】:

查看此链接:Torch - Apply function over dimension

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

【讨论】:

    【解决方案2】:

    一种可能性是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))
    

    【讨论】:

    • 谢谢!是的,对于我的示例有几种不同的方法,但我想知道是否有一种通用方法可以将函数应用于每一行。我认为亚历山大的评论回答了我的第一个问题。
    猜你喜欢
    • 2013-03-18
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 2013-02-23
    • 2017-07-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多