ElegantRL icon indicating copy to clipboard operation
ElegantRL copied to clipboard

A little bug in elegantrl/train/run.py

Open legao-2 opened this issue 2 years ago • 1 comments
trafficstars

run.py 中第82行 exp_r = buffer_items[2].mean().item 当agent为AgentPPO时,由于AgentPPO中重写了上一行中的agent.explore_env,也就是调用的是elegantrl/agents/AgentPPO中的explore_one_env和explore_vec_env两个函数,返回的元组中第三位不再是reward而是logprobs。如果需要获取探索的奖励,这里应该改为 exp_r = buffer_items[3].mean().item,请确认下是否是这样。 同理对run.py中的多进程版本即第218行求exp_r也应该将buffer_items_tensor[2]改为buffer_items_tensor[3]。 当然为了使用其他的Agent依然正确,其实应该修改的是AgentPPO中的xplore_one_env和explore_vec_env返回值顺序,这样的话就要修改elegantrl/agents/AgentPPO.py的81、120、124行将rewards调整到第三个返回值位置上。

legao-2 avatar Mar 02 '23 13:03 legao-2

是的,谢谢你,我需要去检查一下代码。 👍

这个bug虽然不影响训练,但是会让 训练日志 的输出有错误

Yonv1943 avatar Mar 06 '23 02:03 Yonv1943