自学围棋的AlphaGoZero,你也能用PyTorch造一个|附代码实现(3)

2023-05-04 来源:飞速影视
策略网络
策略网络就是普通的CNN了,里面有个批量标准化(Batch Normalization) ,还有一个全连接层,输出概率分布。

自学围棋的AlphaGoZero,你也能用PyTorch造一个|附代码实现


1class PolicyNet(nn.Module):2 def __init__(self, inplanes, outplanes): 3 super(PolicyNet, self).__init__() 4 self.outplanes = outplanes 5 self.conv = nn.Conv2d(inplanes, 1, kernel_size=1) 6 self.bn = nn.BatchNorm2d(1) 7 self.logsoftmax = nn.LogSoftmax(dim=1) 8 self.fc = nn.Linear(outplanes - 1, outplanes) 91011 def forward(self, x):12 x = F.relu(self.bn(self.conv(x)))13 x = x.view(-1, self.outplanes - 1)14 x = self.fc(x)15 probas = self.logsoftmax(x).exp()1617 return probas
价值网络
这个网络稍微复杂一点。除了标配之外,还要再多加一个全连接层。最后,用双曲正切 (Hyperbolic Tangent) 算出 (-1,1) 之间的数值,来表示当前状态下的赢面多大。

自学围棋的AlphaGoZero,你也能用PyTorch造一个|附代码实现


相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号