这只是一篇官方文档的搬运工,嫌文档翻来翻去麻烦,自己总结一下,也方便后来人少走弯路。
- 操作环境:
Windows 10
Anaconda
TensorFlow 1.7.1 (注意:必须是该版本)
CUDA 9.0
Unity 2018.3.9f1 (64-bit)
Unity ML-Agents Toolkit (Beta)
一、安装之类的基本操作
1.1 无非是安装unity、下载ml-agent工具包之类的
ML-agents的Github仓库
安装Anaconda、TensorFlow等的详细过程
1.2 导入ML-agents工具包
- 打开Unity
File
–>Open Project
- 打开
ml-agents-master
(就是从Github上下载的ml-agents文件夹)中的unity-environment
文件夹,点击Open
打开 Edit
–>Project Settings
–>Player
- 对于所有的目标平台(PC,Mac,Linux Standalone,IOS或Android):
i.点开Other Settings
一栏
ii.将Scripting Runtime Verision
选至Experimental(.NET 4.6 Equivalent or .NET 4.x Equivalent)
iii. 在Scripting Defined Symbols
一栏中,添加flag:ENABLE_TENSORFLOW
,输入完成后敲一下回车 File
–>Save Project
1.3 导入TensorFlowSharp插件
- 下载TensorFlowSharp插件
- 打开Unity后,双击下载的
TFSharpPlugin.unitypackage
文件打开,点击Import
导入插件 - 查看
Assets
–>ML-Agents
–>Plugins
–>Computer
目录下该插件是否安装成功
二、Ball3D入门操作
- 在Project窗口中,点开
Assets/ML-Agents/Examples/3DBall
路径,打开3DBall
场景 - 在Hierarchy窗口中,选中Ball3DAcademy对象的子对象Ball3DBrain,在Inspector窗口中检视其属性
- 在Ball3DBrain的Brain组件中,将Brain Type改成Internal
- 在Project窗口中,点开
Assets/ML-Agents/Examples/3DBall/TFModels
路径 - 将模型文件
3DBall
从TFModels
文件夹中拖给Ball3DBrain的Brain组件下的Graph Model - 点击Play按钮,就能看到平台在用训练好的模型来试图平衡小球
三、训练、查看训练效果
3.1 在Unity中训练
-
选中Ball3DBrain,将Brain Type改成External
-
打开
ml-agents-master
中的python
文件夹,所有训练相关的python代码都在这个文件夹中 -
如果要修改训练参数,打开
python
文件夹中的trainer_config.yaml
文件修改相应参数 -
在
python
文件夹中打开命令行终端(如果在其他地方打开了终端,则将路径切换至python下) -
如果TensorFlow等安装在了Anaconda的环境中,则激活该环境,如:
activate ml-agents
-
在终端输入:
python learn.py --run-id=<run-identifier> --train
run-identifier
是给每次训练起的名字,方便管理多次训练结果--train
告诉 learn.py 运行训练session(而不是inference会话)
-
当Start training by pressing the Play button in the Unity Editor 的提示出现后,在Unity中按下Play按钮,开始训练
-
训练完成后,模型文件将保存在
python/models/<run-identifier>
目录下。将该目录下的editor_<academy_name>_<run-identifier>.bytes
文件复制到unity-environment/Assets/ML-Agents/Examples/3DBall/TFModels
-
在Unity中,选中Ball3DBrain,将Brain Type改成Internal,将
editor_<academy_name>_<run-identifier>.bytes
拖给Graph Model -
点击Play按钮,就能看到平台在用你自己训练的模型来试图平衡小球!!!
3.2 利用Jupyter Notebook训练
暂时不用,懒得先写了
3.3 利用TensorBoard查看训练效果
- 在
python
文件夹中打开命令行终端 - 激活安装了TensorBoard的Anaconda环境
- 在终端输入:
tensorboard --logdir=summaries
- 打开浏览器,打开端口localhost:6006,就能看到训练信息了
3.4 导出TensorFlow模型
ML-agents利用TensorFlow进行训练,训练完成的模型保存在python/models/<run-identifier>
目录下的raw_graph_def.pb
中,并自动将其转变成.bytes文件以供Unity导入和使用,因此如果想导出训练完的模型做他用,直接读取.pb文件即可
- 在
python/models/<run-identifier>
目录下运行以下python代码:import tensorflow as tf from tensorflow.python.platform import gfile model = 'raw_graph_def.pb' graph = tf.get_default_graph() graph_def = graph.as_graph_def() graph_def.ParseFromString(gfile.FastGFile(model, 'rb').read()) tf.import_graph_def(graph_def, name='graph') summaryWriter = tf.summary.FileWriter('log/',graph)
- 在
python
文件夹中打开命令行终端 - 激活安装了TensorBoard的Anaconda环境
- 在终端输入:
tensorboard --logdir=log
- 打开浏览器,打开本地端口localhost:6006,就能看到模型信息了
来源:CSDN
作者:X-funbean
链接:https://blog.csdn.net/qq_29159273/article/details/82083275