unity机器学习入门栗子之3D平衡球
需要的插件:ML-agent:https://store.unity.com/download?ref=update
或者****下载地址:http://download.****.net/download/ilypl/10030403
tensorflowsharp插件:https://s3.amazonaws.com/unity-agents/TFSharpPlugin.unitypackage
过程大概是这样:unity->二进制文件->python训练得出模型->unity
首先unity导入ML Agents,ML Agents压缩包中的Unity Environment就是项目文件项目,里面三个栗子,其中一个就是3Dball,文件位置Assets/ML-Agents/Examples/3DBall。
unity环境设置:Edit -> Project Settings -> Player
设置:
Resolution and Presentation -> Run in Background;
Resolution and Presentation -> Display Resolution Dialog设置为Disabled
在hierarchy中找到Ball3DAcademy,点它的子级对象Ball3DBrain,在它的inspector面板中Type of Brain选为External;
然后就可以打包项目了(exe),为了好测试,打包时选为win平台,同时勾选Developer Build用于调试,打包的文件位置放在ML Agents文件的python目录下。
打开win的命令行,进入ML Agents文件的python目录下,再输入jupyter notebook,里面有个Basics的文件,点击去然后修改env_name,改成你打包后exe文件的名字就可以了,然后run all,正常运行的话,说明步骤都对,可以训练模型了。
接下来是训练模型:
在ML Agents文件的python目录下,点开PPO.ipynb,同样是修改env_name,run_path可以不改,运行到结束就可以了,我电脑i5,8G内存,运行到结束用了23分钟。
训练结束后,在python 目录下会多一个Model的文件,里面<env_name>.bytes的文件就是unity所需的机器学习训练好的模型。
接下来先把tensorflowsharp插件导入到unity,然后Edit` -> `Project Settings` -> `Player
Other Settings->Scripting Runtime Version调为Experimental (.NET 4.6 Equivalent)
Scripting Defined Symbols输入ENABLE_TENSORFLOW,然后保存一下,重启unity;
重启后,点3DBallBrain,把Type of Brain改为Internal,最后把模型文件拖到Graph Model中即可。在ML-agent的例子中是已经有现成的模型。
我的公众号已接入图灵机器人欢迎怼我: