0

我用 openai 健身房创建了一个环境,现在我正在尝试不同的设置和代理。我从 dqn_cartpole 示例 ( https://github.com/wau/keras-rl2/blob/master/examples/dqn_cartpole.py ) 中的代理开始。在某些时候,由于 NaN 值,q 值的计算失败。我在下面的设置中添加了我的 Traceback 和小的更改。

我的设置与 dqn_cartpole 示例相比:

密集层:我选择了 256、64、16 而不是 16、16、16

policy = BoltzmannQPolicy()
dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=50000, target_model_update=1e-2, policy=policy)
dqn.compile(Adam(lr=1e-3), metrics=['mae'])
dqn.fit(env, nb_steps=500000, visualize=False, verbose=2)

• 错误前的最后训练集:497280/500000:集:2960,持续时间:13.926s,集步数:168,每秒步数:12,集奖励:47056.579,平均奖励:280.099 [-10229.000, 8998.000],平均动作: 45.298 [0.000, 96.000],损失:60564033920565248.000000,mae:3245972224.000000,mean_q:3358134016.000000

Traceback (most recent call last):
  File "~environment.py", line 125, in
    dqn.fit(env, nb_steps=500000, visualize=False, verbose=2)
  File "~\python_env\lib\site-packages\rl\core.py", line 169, in fit
    action = self.forward(observation)
  File "~\python_env\lib\site-packages\rl\agents\dqn.py", line 227, in forward
    action = self.policy.select_action(q_values=q_values)
  File "~\python_env\lib\site-packages\rl\policy.py", line 227, in select_action
    action = np.random.choice(range(nb_actions), p=probs)
  File "mtrand.pyx", line 928, in numpy.random.mtrand.RandomState.choice
ValueError: probabilities contain NaN

当我使用EpsGreedyQPolicy. 有没有可能理解为什么会产生 NaN 以及如何避免它们?

4

0 回答 0