Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

H-PPO算法运行失败 #760

Closed
Root970103 opened this issue Dec 21, 2023 · 7 comments
Closed

H-PPO算法运行失败 #760

Root970103 opened this issue Dec 21, 2023 · 7 comments
Labels
bug Something isn't working

Comments

@Root970103
Copy link

按照README 中介绍,执行ding -m serial_onpolicy -c dizoo/gym_hybrid/config/gym_hybrid_hppo_config.py -s 0 报错
image

软件版本:
gym:0.25.1
gym-hybrid:0.02

请问可能是什么原因呢?

@PaParaZz1 PaParaZz1 added the bug Something isn't working label Dec 21, 2023
@PaParaZz1
Copy link
Member

我们已经在 main 分支最新的 commit 中修复了这个问题,可以尝试下在你的环境中是否解决。

@Root970103
Copy link
Author

我们已经在 main 分支最新的 commit 中修复了这个问题,可以尝试下在你的环境中是否解决。

OK. 我这边也可以成功运行啦! 感谢~

@Root970103
Copy link
Author

Root970103 commented Dec 22, 2023

我这边尝试运行一段时间后报错。

能帮忙看下是什么原因吗? @PaParaZz1
image

@PaParaZz1
Copy link
Member

我这边尝试运行一段时间后报错。

能帮忙看下是什么原因吗? @PaParaZz1 image

可能是 H-PPO 输出连续动作部分的 musigma 优化出了问题变成了nan,这种情况不时会发生,可以考虑控制更小的学习率 or 添加更强的 grad norm

@Root970103
Copy link
Author

Root970103 commented Dec 22, 2023

我这边尝试运行一段时间后报错。
能帮忙看下是什么原因吗? @PaParaZz1 image

可能是 H-PPO 输出连续动作部分的 musigma 优化出了问题变成了nan,这种情况不时会发生,可以考虑控制更小的学习率 or 添加更强的 grad norm

目前这个算法运行状态一直是这种随机的吗?我看到文档 基准算法性能 中有对应的benchmark,请问是否有稳定的参数配置可以参考呢?

@PaParaZz1
Copy link
Member

我这边尝试运行一段时间后报错。
能帮忙看下是什么原因吗? @PaParaZz1 image

可能是 H-PPO 输出连续动作部分的 musigma 优化出了问题变成了nan,这种情况不时会发生,可以考虑控制更小的学习率 or 添加更强的 grad norm

目前这个算法运行状态一直是这种随机的吗?我看到文档 基准算法性能 中有对应的benchmark,请问是否有稳定的参数配置可以参考呢?

不是随机的,应该是有一定概率某些随机种子下会出现问题,你可以尝试运行多个种子看看。我们这边这两天也会用这个 config 跑一个3个种子的实验确认看看

@puyuan1996
Copy link
Collaborator

我这边尝试运行一段时间后报错。
能帮忙看下是什么原因吗? @PaParaZz1 image

可能是 H-PPO 输出连续动作部分的 musigma 优化出了问题变成了nan,这种情况不时会发生,可以考虑控制更小的学习率 or 添加更强的 grad norm

目前这个算法运行状态一直是这种随机的吗?我看到文档 基准算法性能 中有对应的benchmark,请问是否有稳定的参数配置可以参考呢?

  • 你好,我们已经确认了nan error出现的原因在于entropy_weight较小,hybrid action space的3维离散动作分布很快陷入了一个非常接近one-hot的分布,导致概率接近0的动作对应的log_prob为nan,因此出现你这里的报错。

  • 目前我们通过增大entropy_weight到0.5,从而增加了agent的探索性,也即让3维离散动作分布在优化时也尽可能地接近均匀分布,从而避免了上述问题,同时我们在eval时也使用和collect一样的从分布中采样动作(即设置self._eval_model = model_wrap(self._model, wrapper_name='hybrid_reparam_multinomial_sample'),在129K train iteration时达到了收敛性能。具体的改动请参考这里的PR

  • 实验结果如下所示,其中clamp-10-10是指强制设置action_type['logit'].clamp(-10, 10),可以保证entropy-weight较小时也不出现上述的nan问题,但是在entropy_weight较小时,会由于缺乏探索,性能不如目前的设置(entropy_weight=0.5)。

image image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants