Spinning Up自带了一个plotting模块,用来绘制输出,调用格式如下:
python -m spinup.run plot [path/to/output_directory ...] [--legend [LEGEND ...]]
[--xaxis XAXIS] [--value [VALUE ...]] [--count] [--smooth S]
[--select [SEL ...]] [--exclude [EXC ...]]
位置参数
包含我们希望绘制结果的日志目录(log directories)(或者日志目录的父目录)。plotter会自动递归地搜索实验输出。
例如,假设我们的日志目录如下所示:
data/
bench_algo1/
bench_algo1-seed0/
bench_algo1-seed10/
bench_algo2/
bench_algo2-seed0/
bench_algo2-seed10/
通过运行如下的命令:
python spinup/utils/plot.py data/bench_algo
就能实现algo1和algo2的比较。
可选参数
参数 | 含义 |
---|---|
-l | 图例。默认情况下,plotter会自动使用exp_name 作为图例 ;也可以自定义图例,但是要保证每个被绘制的结果都提供了相应的图例。 |
-x | 选择数据作为X轴。 |
-y | 选择数据作为Y轴。默认为Performance ,对于同轨(on-policy)算法,该值实际为AverageEpRet ;而对于离轨(off-policy)算法,该值实际为AverageTestEpRet |
--count | 默认情况下,plotter绘制的图线中,y-value是所有具有相同exp_name ,即只是随机数的种子不同,其他都相同的实验的结果的平均值。通过设定–count可以将这些曲线分别绘制。 |
-s | 通过将数据平均到一个固定的窗口来平滑数据。 |
--select | (可选的)选择规则:plotter将只显示logdirs中包含所有这些子字符串的曲线。 |
--exclue | (可选的)排除规则:plotter将只显示logdirs中不包含这些子字符串的曲线。 |