(本文來自:http://www.cnblogs.com/CodeGize http://www.codegize.com)
安裝TF#
TF#,即Tensorflow Sharp是Tensorflow的C#版本。得益於改項目,使得tensorflow集成到unity中成為可能。(TF#的Git:https://github.com/migueldeicaza/TensorFlowSharp)
在ml-agent中,含有一個插件,叫做TFSharpPlugin.unitypackage,包含了TF#和ml-agent。
下載地址:https://s3.amazonaws.com/unity-agents/TFSharpPlugin.unitypackage
如果下載較慢可以使用下面的地址:http://pan.baidu.com/s/1c1XArmC 密碼:aej8
安裝這個插件,把必要的dll文件添加到原有的工程中(也可以所有文件完全覆蓋掉)。
按照官方的說明文檔,在unity中選擇菜單Editor->ProjectSetting->Player。在OtherSetting下的Scripting Define Symbols中添加一個宏定義ENABLE_TENSORFLOW
准備訓練完成的模型數據
在這些工作准備就緒后,按照之前一文《Win10下Unity人工智能代理ml_agent環境安裝》搭建環境並且最終運行tensorflow的訓練模型。如果一切順利沒有問題,那么就會在ml-agents\python\models\ppo這個目錄下生成一個3dball.byte文件。這個就是訓練完成的模型數據。將其重命名為3dball_custom.byte(unity工程里面已經含有官方訓練好的模型數據文件,也叫3dball.byte,所以這邊為了區別進行了重命名)。
使用訓練完成的模型數據
- 復制3dball_custom.byte到unity中的Assets\ML-Agents\Examples\3DBall\ TFModels下。
- 打開Assets\ML-Agents\Examples\3DBall下的Scene場景
- 在Hierarchy面板中選擇Ball2DAcademy下的Ball3DBrain物體。
- 在Inspector面板中,將Brain組件的Type Of Brain設置為Internal(如果沒有這個選項,說明沒有在PlayerSetting中設置宏定義)。將Graph Model設置為我們剛剛訓練完成的那個模型數據3dball_custom。
- 運行
使用結果
可以看到平板會自動地擺動,盡可能不讓小球從平板上掉下來。說明此時,程序已經正常使用了我們訓練完成的模型數據
(效果和圖中類似,由於不知道怎么做gif,用的是別人的圖)
轉載請保留:http://www.cnblogs.com/CodeGize http://www.codegize.com