在论文上看到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导入文件,路径如下图所示:




UNITY_MATRIX_M是什么_Powered by 金山文档


在编辑器界面选择ML-Agents,依次点击Example,3DBall, scenes, 双击3Dball,即可看到如下画面:


UNITY_MATRIX_M是什么_UNITY_MATRIX_M是什么_02


看到上图表示已经导入成功。

开始训练

在官方给的文件夹之下(ml-agent-develop),打开终端,激活虚拟环境,执行如下命令:

mlagents-learn config/ppo/3DBall.yaml --run-id=3DBall --force

默认使用ppo算法,读取3DBall.yaml文件,运行的名称是3DBall,--force是强制执行,如果没有其他错误,会出现如下界面:


UNITY_MATRIX_M是什么_Powered by 金山文档_03


点击unity编辑器中的三角形播放信号,可以看到已经动起来的ML-Agent,使用原始的数据一般不会有很好的训练效果,可有尝试将epsilon调到较小的值,一般为0.0001级别,即可获得较好的效果。


UNITY_MATRIX_M是什么_unity_04


查看训练效果

在官方文件目录下有results文件夹,找到3DBall训练文件,有一个名为3DBall.onnx的文件,将此模型导入到项目当中,一般可以直接拖入到文件夹当中,将文件拖到Behavior Parameter组件当中的model,点击播放按钮即可看到效果。模型加载位置我已经圈出。


UNITY_MATRIX_M是什么_unity_05


Tensorboard使用

关于tensorboard的使用,最重要的就是路径的问题,关于踩坑,我将博客文件放在下面。大家查看就好ubuntu18.04 下使用tensorboard出现错误的解决方法。

总结

本文对初学ML-Agents过程进行了简单的记录,不涉及复杂的算法部分,只是简单的运行,修改参数,方便各位初学者学习和使用,适合小白和初学者,也欢迎大佬前来指导。