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