unity机器学习入门栗子之3D平衡球

来源:互联网 发布:淘宝详情页ps怎么切片 编辑:程序博客网 时间:2024/06/10 05:02

需要的插件:ML-agent:https://store.unity.com/download?ref=update

或者csdn下载地址:http://download.csdn.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的例子中是已经有现成的模型。



我的公众号已接入图灵机器人欢迎怼我:



原创粉丝点击