擅长:python、mysql、java
<p>如果有张量<code>my_tensor</code>,并且希望在第二个数组维度(即索引为1的数组维度,即列维度)上求和,如果张量是二维的,则使用<code>torch.sum(my_tensor,1)</code>或等效的<code>my_tensor.sum(1)</code>请参见<a href="https://pytorch.org/docs/stable/torch.html#torch.sum" rel="nofollow noreferrer">documentation here</a>。</p>
<p>文档中没有明确提到的一件事是:您可以使用<code>-1</code>(或者使用<code>-2</code>等跨<em>最后一个</em>数组维度求和)</p>
<p>因此,在您的示例中,您可以使用:<code>outputs.sum(1)</code>或<code>torch.sum(outputs,1)</code>,或者等效地使用<code>outputs.sum(-1)</code>或<code>torch.sum(outputs,-1)</code>。所有这些都会得到相同的结果,一个大小为<code>torch.Size([10])</code>的输出张量,每个条目都是张量<code>outputs</code>给定列中所有行的总和。</p>
<p>用三维张量来说明:</p>
<pre><code>In [1]: my_tensor = torch.arange(24).view(2, 3, 4)
Out[1]:
tensor([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
In [2]: my_tensor.sum(2)
Out[2]:
tensor([[ 6, 22, 38],
[54, 70, 86]])
In [3]: my_tensor.sum(-1)
Out[3]:
tensor([[ 6, 22, 38],
[54, 70, 86]])
</code></pre>