ElegantRL
ElegantRL copied to clipboard
A little bug in elegantrl/train/run.py
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调整到第三个返回值位置上。
是的,谢谢你,我需要去检查一下代码。 👍
这个bug虽然不影响训练,但是会让 训练日志 的输出有错误