ML-Agent:通過TF#使用訓練完成的模型數據


(本文來自: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文件添加到原有的工程中(也可以所有文件完全覆蓋掉)。

2017102201

按照官方的說明文檔,在unity中選擇菜單Editor->ProjectSetting->Player。在OtherSetting下的Scripting Define Symbols中添加一個宏定義ENABLE_TENSORFLOW

2017102202

准備訓練完成的模型數據

在這些工作准備就緒后,按照之前一文《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。

2017102203

  • 運行

使用結果

可以看到平板會自動地擺動,盡可能不讓小球從平板上掉下來。說明此時,程序已經正常使用了我們訓練完成的模型數據

f81bbb27a81546b7b368ca3f1a4d1970

(效果和圖中類似,由於不知道怎么做gif,用的是別人的圖)

轉載請保留:http://www.cnblogs.com/CodeGize      http://www.codegize.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM