[英]Sum of specific indices in pytorch?
我有一个输出大小为 12 的张量的 neural.network。在对这个张量应用一些计算之后,我需要通过添加前四对并将它们转换为 1 维来将其减小到大小 8。
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] -> [3, 7, 11, 15, 9, 10, 11, 12]
pytorch 中是否有这样的操作仍然允许我应用渐变?
梯度计算仍在计算中,因此您无需担心。 如果张量的形状为(batch_size, 12)
,则可以执行以下操作:
import torch
output = torch.Tensor([
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
])
output = torch.cat((
output[:, 0].unsqueeze(1) + output[:, 1].unsqueeze(1),
output[:, 2].unsqueeze(1) + output[:, 3].unsqueeze(1),
output[:, 4].unsqueeze(1) + output[:, 5].unsqueeze(1),
output[:, 6].unsqueeze(1) + output[:, 7].unsqueeze(1),
output[:, 8:]),
dim=1)
print(output)
>>> tensor([[ 3., 7., 11., 15., 9., 10., 11., 12.],
[ 3., 7., 11., 15., 9., 10., 11., 12.]])
顺便说一句,为什么不使用nn.Linear()
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.