我试图通过OpenAi的RL算法基础实现(https://github.com/openai/baselines)来阅读PPO1代码,以便更好地理解PPO如何工作,如何实现PPO它等等。
我对" optim_batchsize"之间的区别感到困惑。和#34; timesteps_per_actorbatch"被引入" learn()"功能。这些超参数是什么?
另外,我在" run_atari.py"中看到了文件," make_atari"和" wrap_deepmind"函数用于包装环境。在" make_atari"功能,它使用" EpisodicLifeEnv",一旦生命消失,它就会结束这一集。平均而言,我发现训练开始时的剧集长度大约是7到8个步骤,但是批量大小是256,所以我不知道如何进行任何更新。在此先感谢您的帮助。
答案 0 :(得分:0)
我也一直在自己经历它。...他们的代码是一场噩梦! optim_batchsize是用于优化策略的批处理大小,timesteps_per_actorbatch是代理在优化之前运行的时间步数。
关于偶发事件,我不确定。有两种可能的发生方式,一种是等待直到256个条目被填充,然后才进行实际更新,另一种方式是用不执行任何操作的伪数据填充批次,有效地仅更新情节持续的7或8个步骤。