我可以像这样添加两个张量x
并y
就地
x = x.add(y)
Run Code Online (Sandbox Code Playgroud)
鉴于所有张量都具有相同的维度,有没有办法对三个或更多张量做同样的事情?
result = torch.sum(torch.stack([x, y, ...]), dim=0)
Run Code Online (Sandbox Code Playgroud)
无堆栈:
from functools import reduce
result = reduce(torch.add, [x, y, ...])
Run Code Online (Sandbox Code Playgroud)
编辑
正如@LudvigH 指出的那样,第二种方法不像就地添加那样节省内存。所以最好是这样:
from functools import reduce
result = reduce(
torch.Tensor.add_,
[x, y, ...],
torch.zeros_like(x) # optionally set initial element to avoid changing `x`
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1976 次 |
最近记录: |