2015-12-21 47 views
0

我知道張量有一個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 

我會怎麼做?

+1

你應該看看這個問題:http://stackoverflow.com/questions/34123291/torch-apply-function-over-dimension –

回答

0

一種可能性是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)) 
+0

謝謝!是的,在我的例子中有幾種不同的方法可以實現,但我想知道是否有一種通用的方法來將函數應用到每一行。我想亞歷山大的評論回答了我的第一個問題。 – Veech