Abh*_*tia 23 python sum torch pytorch tensor
ipdb> outputs.size()
torch.Size([10, 100])
ipdb> print sum(outputs,0).size(),sum(outputs,1).size(),sum(outputs,2).size()
(100L,) (100L,) (100L,)
Run Code Online (Sandbox Code Playgroud)
如何对列进行求和?
mex*_*mex 45
最简单和最好的解决方案是使用torch.sum().
总结张量的所有元素:
torch.sum(outputs) # gives back a scalar
Run Code Online (Sandbox Code Playgroud)
要汇总所有行(即每列):
torch.sum(outputs, dim=0) # size = [1, ncol]
Run Code Online (Sandbox Code Playgroud)
总结所有列(即每行):
torch.sum(outputs, dim=1) # size = [nrow, 1]
Run Code Online (Sandbox Code Playgroud)
kma*_*o23 11
或者,对于二维张量,您可以使用tensor.sum(axis)whereaxis指示0和1分别对行和列求和。
In [210]: X
Out[210]:
tensor([[ 1, -3, 0, 10],
[ 9, 3, 2, 10],
[ 0, 3, -12, 32]])
In [211]: X.sum(1)
Out[211]: tensor([ 8, 24, 23])
In [212]: X.sum(0)
Out[212]: tensor([ 10, 3, -10, 52])
Run Code Online (Sandbox Code Playgroud)
从上面的输出我们可以看出,在这两种情况下,输出都是一维张量。另一方面,如果您也希望在输出中保留原始张量的维度,那么您已将布尔 kwargkeepdim设置True为:
In [217]: X.sum(0, keepdim=True)
Out[217]: tensor([[ 10, 3, -10, 52]])
In [218]: X.sum(1, keepdim=True)
Out[218]:
tensor([[ 8],
[24],
[23]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40686 次 |
| 最近记录: |