Closed Root970103 closed 9 months ago
我们已经在 main 分支最新的 commit 中修复了这个问题,可以尝试下在你的环境中是否解决。
我们已经在 main 分支最新的 commit 中修复了这个问题,可以尝试下在你的环境中是否解决。
OK. 我这边也可以成功运行啦! 感谢~
我这边尝试运行一段时间后报错。
能帮忙看下是什么原因吗? @PaParaZz1
我这边尝试运行一段时间后报错。
能帮忙看下是什么原因吗? @PaParaZz1
可能是 H-PPO 输出连续动作部分的 mu
和 sigma
优化出了问题变成了nan,这种情况不时会发生,可以考虑控制更小的学习率 or 添加更强的 grad norm
我这边尝试运行一段时间后报错。 能帮忙看下是什么原因吗? @PaParaZz1
可能是 H-PPO 输出连续动作部分的
mu
和sigma
优化出了问题变成了nan,这种情况不时会发生,可以考虑控制更小的学习率 or 添加更强的 grad norm
目前这个算法运行状态一直是这种随机的吗?我看到文档 基准算法性能 中有对应的benchmark,请问是否有稳定的参数配置可以参考呢?
我这边尝试运行一段时间后报错。 能帮忙看下是什么原因吗? @PaParaZz1
可能是 H-PPO 输出连续动作部分的
mu
和sigma
优化出了问题变成了nan,这种情况不时会发生,可以考虑控制更小的学习率 or 添加更强的 grad norm目前这个算法运行状态一直是这种随机的吗?我看到文档 基准算法性能 中有对应的benchmark,请问是否有稳定的参数配置可以参考呢?
不是随机的,应该是有一定概率某些随机种子下会出现问题,你可以尝试运行多个种子看看。我们这边这两天也会用这个 config 跑一个3个种子的实验确认看看
我这边尝试运行一段时间后报错。 能帮忙看下是什么原因吗? @PaParaZz1
可能是 H-PPO 输出连续动作部分的
mu
和sigma
优化出了问题变成了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
)。
按照README 中介绍,执行
ding -m serial_onpolicy -c dizoo/gym_hybrid/config/gym_hybrid_hppo_config.py -s 0
报错软件版本: gym:0.25.1 gym-hybrid:0.02
请问可能是什么原因呢?