其中,
--num_worker 16:这个数字设置不要超过核数。
--num_work_trial 2:这里是每个worker要测试的,种群中的成员数量。
--num_episode 4:这里是种群里每个成员需要接受打分的集数。
--max_length 1000:这里是一集里最大的时间步数。
--eval_steps 25:这里是在长达100集的最佳权重评估过程中,经历了多少代进化。
--init_opt ./controller/car_racing.cma.4.32.es.pk在默认情况下,控制器每一次都会从头开始运行,把当前状态保存到controller目录下的pickle文件中。然后,下次我们就可以从存档的地方继续训练。
在每一代繁衍完成之后,算法的当前状态和最佳权重集合都会输出到./controller文件夹。
第九步:可视化到这里,我们的智能体走过了200代,练到了883.13的平均分。它轮回的天地是:Google Cloud,Ubuntu 16.04 vCPU, 67.5 RAM,步骤和参数都和这篇文章里写的一样。
论文的作者大大们训练出906的平均分,那是2000代修仙的结果,也是目前这个环境下的最高分了。他们需要的配置也高一些,训练数据有10,000集,种群大小是64,计算机是64核等等。
将控制器的当前状态可视化,要敲上面这个代码。其中:
--filename:这是你想要赋予控制器的那些优秀权重的json路径。
--render_mode:在屏幕上渲染环境。
--record_video:把mp4输出到./video文件夹:
--final_mode:开始100集的控制器测试,输出平均分。下面是个可爱的小Demo。