我正在用目标环境Atari-Pong在PyTorch中从头开始实现DQN模型。在调整了一段时间的超参数之后,我似乎无法让模型达到大多数出版物所报道的性能(~+21奖励;意味着代理几乎赢得了所有截击)。你知道吗
我最近的结果显示在下图中。请注意,x轴是第集(完整游戏到21集),但总的训练迭代次数约为670万次。你知道吗
我的设置具体如下:
class DQN(nn.Module):
def __init__(self, in_channels, outputs):
super(DQN, self).__init__()
self.conv1 = nn.Conv2d(in_channels=in_channels, out_channels=32, kernel_size=8, stride=4)
self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=4, stride=2)
self.conv3 = nn.Conv2d(in_channels=64, out_channels=64, kernel_size=3, stride=1)
self.fc1 = nn.Linear(in_features=64*7*7 , out_features=512)
self.fc2 = nn.Linear(in_features=512, out_features=outputs)
def forward(self, x):
x = F.relu(self.conv1(x))
x = F.relu(self.conv2(x))
x = F.relu(self.conv3(x))
x = x.view(-1, 64 * 7 * 7)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x # return Q values of each action
有没有人有过类似的经历,像这样每集平均有6-9分的报酬?你知道吗
如果您对超参数或算法细节有任何修改建议,我们将不胜感激!你知道吗
尝试使用按优先级排列的体验重播。你知道吗
这肯定会帮助你得到更好的分数。你知道吗
也可以试试大一点的f.e.64。(可提高坡度)
尝试提高学习速度(随着培训时间的推移而降低)。(它可以工作)。你知道吗
相关问题 更多 >
编程相关推荐