python - 拟合 keras 模型时文件“mtrand.pyx”中的 Numpy 错误
问题描述
我在用:
- keras-rl2:1.0.4
- 张量流:2.4.1
- 麻木:1.19.5
- 健身房 0.18.0
用于为强化学习项目训练 DQN 模型。
我的动作空间包含 60 个离散值:
self.action_space = Discrete(60)
我在 x 步骤后收到此错误:
1901/10000 [====>.........................] - ETA: 1:02 - reward: 6.1348Traceback (most recent call last):
File "D:/GitHub/networth-simulation/rebalancing_simple_discrete.py", line 203, in <module>
dqn.fit(env, nb_steps=5000, visualize=False, verbose=1)
File "D:\GitHub\networth-simulation\venv\lib\site-packages\rl\core.py", line 169, in fit
action = self.forward(observation)
File "D:\GitHub\networth-simulation\venv\lib\site-packages\rl\agents\dqn.py", line 227, in forward
action = self.policy.select_action(q_values=q_values)
File "D:\GitHub\networth-simulation\venv\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
当我使用较少数量的离散动作(<10)时,它不会每次都发生。
我找到了该修复程序,但我不明白如何应用它。我找不到任何文件“numpy/random/mtrand/mtrand.pyx”
有没有人找到解决该错误的方法?
解决方案
当环境类属性的值变得太高(正或负)时,显然会弹出此错误。
我解决了我的 step() 方法的限制问题。
推荐阅读
- git - Visual Studio:将分支推送到远程存储库时遇到错误:无法拉取以集成更改:拉取命令已禁用
- sql-server - 使用 WHERE 子句排除数据,但仅在某些条件下
- bash - 如何防止Expect输出CRLF?
- xamarin - 如何将文件选择器打开按钮文本更改为在 xamarin 表单 UWP 中发送?
- c# - 如何使用名称等属性覆盖 WPF 中特定列的数据网格单元格?
- unit-testing - 如果 ArrayList 已经包含回调,如何测试是否未添加回调 - 单元测试
- python - 使用 pandas 从复杂的 xml 文档中提取文本元素
- shopify - Shopify - 将变量传递到 if 语句中?
- android - android error AAPT2 aapt2-4.1.2-6503028-windows 守护进程#6:守护进程启动失败
- python - 将数据框中的字符串转换为单独的列,然后将它们添加回主数据框