在论文上看到Unity作为强化学习工具,一直想要进行学习和探索,在自己实际操作过后进行总结,将自己在操作过程当中遇到的问题进行记录。
代码链接:https://github.com/Unity-Technologies/ml-agents
论文链接:Unity: A General Platform for Intelligent Agents
测试环境
Anconda3
Unity2021
python3.7
pytorch
创建虚拟环境
使用conda命令创建名称为Unity python版本为3.7的虚拟环境。
#创建环境
conda create -n Unity python=3.7
#激活环境
conda activate Unity
安装下载的安装包
在下载的文件夹当中打开终端,使用如下命令切换到相应目录下并使用pip指令安装
cd ml-agents
pip install .
cd ..
cd ml-agents-envs
pip install .
一定要注意install之后的 点。
导入工程文件
打开unity编辑器,选择project导入文件,路径如下图所示:
在编辑器界面选择ML-Agents,依次点击Example,3DBall, scenes, 双击3Dball,即可看到如下画面:
看到上图表示已经导入成功。
开始训练
在官方给的文件夹之下(ml-agent-develop),打开终端,激活虚拟环境,执行如下命令:
mlagents-learn config/ppo/3DBall.yaml --run-id=3DBall --force
默认使用ppo算法,读取3DBall.yaml文件,运行的名称是3DBall,--force是强制执行,如果没有其他错误,会出现如下界面:
点击unity编辑器中的三角形播放信号,可以看到已经动起来的ML-Agent,使用原始的数据一般不会有很好的训练效果,可有尝试将epsilon调到较小的值,一般为0.0001级别,即可获得较好的效果。
查看训练效果
在官方文件目录下有results文件夹,找到3DBall训练文件,有一个名为3DBall.onnx的文件,将此模型导入到项目当中,一般可以直接拖入到文件夹当中,将文件拖到Behavior Parameter组件当中的model,点击播放按钮即可看到效果。模型加载位置我已经圈出。
Tensorboard使用
关于tensorboard的使用,最重要的就是路径的问题,关于踩坑,我将博客文件放在下面。大家查看就好ubuntu18.04 下使用tensorboard出现错误的解决方法。
总结
本文对初学ML-Agents过程进行了简单的记录,不涉及复杂的算法部分,只是简单的运行,修改参数,方便各位初学者学习和使用,适合小白和初学者,也欢迎大佬前来指导。