gym-0.26.1
Pendulum-v1
Dueling DQN
因为还是
DQN,所以我们沿用double DQN,然后把Qnet换成VAnet。
其他的不变,详情参考前一篇文章。
class VA(nn.Module):
"""只有一层隐藏层的A网络和V网络"""
def __init__(self, state_dim, hidden_dim, action_dim):
super().__init__()
self.fc1 = nn.Linear(state_dim, hidden_dim)
self.fc_A = nn.Linear(hidden_dim, action_dim)
self.fc_V = nn.Linear(hidden_dim, 1)
def forward(self, X):
A = self.fc_A(F.relu(self.fc1(X)))
V = self.fc_V(F.relu(self.fc1(X)))
Q = V + A - A.mean(1).reshape(-1,1)
return Q
action_dim = 11,和之前一样保持不变,然后看下结果。
运行结果如下:

相比于之前的DQN,学习更加稳定,return在总体上是比之前要高的。
同时q-value也是比之前要大。



















