繁体   English   中英

如何在pytorch中分离最后一层深层网络?

[英]How can I separate the last layer of deep network in pytorch?

我的深层网络是:

self.actor = nn.Sequential(
   nn.Linear(state_dim, 256),
   nn.Softplus(),
   nn.Linear(256, 256),
   nn.Softplus(),
   nn.Linear(256, action_dim),
   nn.Softplus())

现在,我希望网络提供两个单独的输出,如下所示:
演示网络

也就是说,只有网络的最后一层不同,也许最后一层有不同的激活函数。 我应该如何更改上面的代码?

您要构建的模型不再是连续的,因为最后有两个并行分支。 您可以保留公共主干并使用两个额外的独立分开 就像是:

class Model(nn.Module):
    def __init__(self):
        super.__init__()

        self.actor = nn.Sequential(
            nn.Linear(state_dim, 256),
            nn.Softplus(),
            nn.Linear(256, 256),
            nn.Softplus())
      
        self.outA = nn.Sequential(
            nn.Linear(256, action_dim),
            nn.Softplus())

        self.outB = nn.Sequential(
            nn.Linear(256, action_dim),
            nn.Softplus())
  
    def forward(self, x):
      features = self.actor(x)
      return self.outA(features), self.outB(features)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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