smarts中benchmark运行
安装完成可以运行,但是打开envision和visdom并没有发现正确的可视化内容,查看命令行log,发现报错,在log/results/run/4lane-1/PPO_Simple…/error.txt中发现找不到map.net文件。
可以通过sumo内部构建函数直接生成对应的map.net
Step 1: 生成scenario对应的map.glb文件。
若不生成map.glb则环境无法运行。【因为benchmark文件夹中内部有自己的环境,即smarts内部有两套环境定义。】
通过调用sumo中的glb转换接口,以下代码需要在benchmark文件夹中运行。
from smarts.sstudio.sumo2mesh import generate_glb_from_sumo_network
import os
generate_glb_from_sumo_network(os.getcwd()+"/double_merge/cross/map.net.xml" , os.getcwd()+"/double_merge/cross/map.glb")
generate_glb_from_sumo_network(os.getcwd()+"/double_merge/nocross/map.net.xml" , os.getcwd()+"/double_merge/nocross/map.glb")
generate_glb_from_sumo_network(os.getcwd()+"/intersections/4lane/map.net.xml" , os.getcwd()+"/intersections/4lane/map.glb")
generate_glb_from_sumo_network(os.getcwd()+"/intersections/4lane_sv/map.net.xml" , os.getcwd()+"/intersections/4lane_sv/map.glb")
generate_glb_from_sumo_network(os.getcwd()+"/two_ways/bid/map.net.xml" , os.getcwd()+"/two_ways/bid/map.glb")
generate_glb_from_sumo_network(os.getcwd()+"/two_ways/bid_sv/map.net.xml" , os.getcwd()+"/two_ways/bid_sv/map.glb")
Step 2: 运行readme.md中训练和评估
评估需要使用训练生成的检查点,因此必须首先进行训练。
python run.py scenarios/intersections/4lane -f agents/ppo/baseline-continuous-control.yaml
直接报错
$ python run.py scenarios/intersections/4lane -f agents/ppo/baseline-continuous-control.yaml /home/nics/venv/python37_smarts_rllib/lib/python3.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py:15: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
/usr/lib/python3.7/importlib/_bootstrap.py:219: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__