假定在Ubuntu系统上已经安装cuda/cudnn/anaconda/pycharm/unityhub/unity3D(2021.3版本或比这个高)。
1. 安装ml-agents
官方参考文档链接:link
1.1 在python虚拟环境中安装mlagent python package
安装的是mlagents release_18_branch(因为是gridsensor 2.0要求对应的一个版本 ), pip安装时对应的是0.27.0。
pip install mlagents==0.27.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
1.2 在unity3D安装ML-Agents Toolkit
这里我是在github下载的mlagents release_18_branch.zip,然后直接解压。(感觉这里ubuntu和windows的安装过程差不多)。这块也可以参照视频链接:link 。unity打开解压后的Project工程,这里采用更高版本unity3D打开低版本的Project也没问题。其中,插件com.unity.ml-agents以及com.unity.ml-agents.extensions,是通过本地导入的(unity3D工具栏window,选择package manager, 选择解压包release_18_branch中对应的插件)。
2. 运行ml-agents中的例子
在虚拟环境下,终端目录切换到与config同目录下(config在release_18_branch解压包中),运行如下代码:
mlagents-learn config/ppo/3DBall.yaml --run-id= 3DBallTest --force
然后运行unity3D对应的例子即可开始训练。然后双人足球的训练同上,终端运行代码如下:
mlagents-learn SoccerTwos.yaml --run-id=SoccerTest --force
3. 安装gridsensor 2.0
在gituhub下载gridsensor, 链接:link.这里步骤与 1.2 相仿。
4. 运行gridsensor 2.0中的例子
这里终端切换到Project目录下,运行如下代码:
mlagents-learn trainer_config.yaml --run-id=Driver --force
然后运行unity3D对应的例子即可开始训练。但在Dogfight例子中,运行如下代码和unity3D时会报错。
mlagents-learn trainer_config.yaml --run-id=Pilot --force
错误显示:UnityAgentsException: No detectable tags found! Add a detectable gameobject to the inspector settings.
gituhub中gridsensor提到了上述错误的可能原因,我试过之后无效。后来改了unity3D的版本就可以了,将版本2021.3.21f1改为了2021.1.10f1。
当训练Dogfight时,有可能出现Tag cannot find这样的错误,需要在!Reimport文件夹reimport spaceship组件.