繁体   English   中英

pytorch 中具体指数的总和?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM