我知道張量有一個apply
方法,但是這隻適用於每個元素的函數。有沒有一種優雅的方式來進行按行操作?例如,我可以乘以不同的值每行?對火炬中的每一行應用函數
說
A =
1 2 3
4 5 6
7 8 9
和
B =
1
2
3
,我想通過B的i
個元素乘以A的i
第i行中的每個元素得到
1 2 3
8 10 12
21 24 27
我會怎麼做?
我知道張量有一個apply
方法,但是這隻適用於每個元素的函數。有沒有一種優雅的方式來進行按行操作?例如,我可以乘以不同的值每行?對火炬中的每一行應用函數
說
A =
1 2 3
4 5 6
7 8 9
和
B =
1
2
3
,我想通過B的i
個元素乘以A的i
第i行中的每個元素得到
1 2 3
8 10 12
21 24 27
我會怎麼做?
一種可能性是expandB
如下:
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))
謝謝!是的,在我的例子中有幾種不同的方法可以實現,但我想知道是否有一種通用的方法來將函數應用到每一行。我想亞歷山大的評論回答了我的第一個問題。 – Veech
請參閱此鏈接:Torch - Apply function over dimension
(感謝亞歷山大Lutsenko的提供它,我剛把它移到答案上。)
你應該看看這個問題:http://stackoverflow.com/questions/34123291/torch-apply-function-over-dimension –