Unity3D && ML-agents 入坑指导

  • @[toc]( Unity3D && ML-agents 入坑指导)
  • 一、安装之类的基本操作
    • 1.1 无非是安装unity、下载ml-agent工具包之类的
    • 1.2 导入ML-agents工具包
    • 1.3 导入**TensorFlowSharp**插件
  • 二、Ball3D入门操作
  • 三、训练、查看训练效果
    • 3.1 在Unity中训练
    • 3.2 利用Jupyter Notebook训练
    • 3.3 利用TensorBoard查看训练效果
    • 3.4 导出TensorFlow模型

这只是一篇官方文档的搬运工,嫌文档翻来翻去麻烦,自己总结一下,也方便后来人少走弯路。

  • 操作环境:
    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工具包

  1. 打开Unity
  2. File–>Open Project
  3. 打开ml-agents-master(就是从Github上下载的ml-agents文件夹)中的unity-environment文件夹,点击Open打开
  4. Edit–>Project Settings–>Player
  5. 对于所有的目标平台(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,输入完成后敲一下回车
  6. File–>Save Project

1.3 导入TensorFlowSharp插件

  1. 下载TensorFlowSharp插件
  2. 打开Unity后,双击下载的TFSharpPlugin.unitypackage文件打开,点击Import导入插件
  3. 查看Assets–>ML-Agents–>Plugins–>Computer目录下该插件是否安装成功

二、Ball3D入门操作

  1. Project窗口中,点开Assets/ML-Agents/Examples/3DBall路径,打开3DBall场景
  2. Hierarchy窗口中,选中Ball3DAcademy对象的子对象Ball3DBrain,在Inspector窗口中检视其属性
  3. Ball3DBrainBrain组件中,将Brain Type改成Internal
  4. Project窗口中,点开Assets/ML-Agents/Examples/3DBall/TFModels路径
  5. 将模型文件3DBallTFModels文件夹中拖给Ball3DBrainBrain组件下的Graph Model
  6. 点击Play按钮,就能看到平台在用训练好的模型来试图平衡小球


三、训练、查看训练效果

3.1 在Unity中训练

  1. 选中Ball3DBrain,将Brain Type改成External

  2. 打开ml-agents-master中的python文件夹,所有训练相关的python代码都在这个文件夹中

  3. 如果要修改训练参数,打开python文件夹中的trainer_config.yaml文件修改相应参数

  4. python文件夹中打开命令行终端(如果在其他地方打开了终端,则将路径切换至python下)

  5. 如果TensorFlow等安装在了Anaconda的环境中,则激活该环境,如:activate ml-agents

  6. 在终端输入:python learn.py --run-id=<run-identifier> --train

    • run-identifier是给每次训练起的名字,方便管理多次训练结果
    • --train告诉 learn.py 运行训练session(而不是inference会话)
  7. Start training by pressing the Play button in the Unity Editor 的提示出现后,在Unity中按下Play按钮,开始训练

  8. 训练完成后,模型文件将保存在python/models/<run-identifier>目录下。将该目录下的editor_<academy_name>_<run-identifier>.bytes文件复制到unity-environment/Assets/ML-Agents/Examples/3DBall/TFModels

  9. 在Unity中,选中Ball3DBrain,将Brain Type改成Internal,将editor_<academy_name>_<run-identifier>.bytes拖给Graph Model

  10. 点击Play按钮,就能看到平台在用你自己训练的模型来试图平衡小球!!!

3.2 利用Jupyter Notebook训练

暂时不用,懒得先写了

3.3 利用TensorBoard查看训练效果

  1. python文件夹中打开命令行终端
  2. 激活安装了TensorBoard的Anaconda环境
  3. 在终端输入:tensorboard --logdir=summaries
  4. 打开浏览器,打开端口localhost:6006,就能看到训练信息了

3.4 导出TensorFlow模型

ML-agents利用TensorFlow进行训练,训练完成的模型保存在python/models/<run-identifier>目录下的raw_graph_def.pb中,并自动将其转变成.bytes文件以供Unity导入和使用,因此如果想导出训练完的模型做他用,直接读取.pb文件即可

  1. python/models/<run-identifier>目录下运行以下python代码:

    import tensorflow as tf
    from tensorflow.python.platform import gfilemodel = '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)
    
  2. python文件夹中打开命令行终端
  3. 激活安装了TensorBoard的Anaconda环境
  4. 在终端输入:tensorboard --logdir=log
  5. 打开浏览器,打开本地端口localhost:6006,就能看到模型信息了

Unity3D ML-agents 入坑指导相关推荐

  1. 一块GPU搞定ChatGPT;ML系统入坑指南;理解GPU底层架构

    1. 跑ChatGPT体量模型,从此只需一块GPU 在发展技术,让大模型掌握更多能力的同时,也有人在尝试降低AI所需的算力资源.最近,一种名为FlexGen的技术因为「一块RTX 3090跑ChatG ...

  2. 资源 |“从蒙圈到入坑”,推荐新一波ML、DL、RL以及数学基础等干货资源

    向AI转型的程序员都关注了这个号☝☝☝ 编译 | AI科技大本营(rgznai100) 参与 | suiling 此前营长曾发过一篇高阅读量.高转发率,高收藏量的文章<爆款 | Medium上6 ...

  3. 小白深度学习入坑指南

    小白深度学习入坑指南 小白深度学习入坑指南 写博客的初衷适合的人群 理论篇 说明 数学 CV ML DL 优化 实践篇 linux python 深度学习框架 框架学习 硬件配置 软件环境配置 常见的 ...

  4. 一份详细的“入坑Phd指南”---教你如何做笔记、整理参考书目、管理时间、如何写作、对自己和导师合理预期...

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要5分钟 pick小博主,每天进步一丢丢 [导读]今天给大家强烈推荐一份详细的读博指南,本指南教你如何做笔记.整理参考书目.管理时间.如何写作.对 ...

  5. PyTorch入坑(一)~(三): Tensor的概念,基本操作和线性回归

    PyTorch 一文入门 PyTorch 入坑一:数据类型与Tensor的概念 PyTorch数据类型 Tensor的概念 Tensor与Variable Variable Tensor Tensor ...

  6. 博士入坑必读-A-Z博士(PhD)顺利毕业必读指南

     本书主要讲解读博过程中一些关键要点.能力.核心要素,以及如何学会或达到这些能力.这本书主要面向理科和工科的博士生.特别是,本书讨论的主题是:定义读者的研究问题,发散文献综述,准备和执行实验,时间管理 ...

  7. FPV入坑前传(20211227)(未完)

    前置:从啥也不懂开始大概做个记录. 目的:完成一套组装室内穿越机或直接飞成品 20201112 最近掉在别的坑里太久了,都爬不出来. 陀螺仪的资料也还没有整理. 这半年离FPV越来越远了,如果说近的话 ...

  8. notion 科研_科研新手全面入坑指南

    简介 写论文既是当代大学生的必修课,也是科研工作者的必备技能.尽管大部分少数派读者的人生中都要经历一两次写论文的过程,但那些藏在这个过程里的诸多方法和细节,连你的导师都未必会系统地告诉你. 在这份&l ...

  9. 2022年入坑图像分割,我该从哪入手?

    作为一枚CVer,怎样才能出成绩? 计算机视觉算是人工智能的几个分支中,竞争最激烈的方向之一了,内卷也最为严重. 对于已然入坑的研究生宝宝,想要一路打怪升级,论文必定是最大的那个task. 说到打怪升 ...

  10. 树莓派PICO -oled详细避坑指导

    树莓派PICO-oled避坑指导 一.前文   注意:本教程使用的编辑器为Thonny,语言为micropython   案例将使用096英寸128x64的iicoled屏,库为ssd1306py 二 ...

最新文章

  1. halcon入门_visionpro和halcon这两款机器视觉软件区别
  2. 使用iso升级_华佗品牌战略升级 彰显百年品质-产经要闻
  3. 使用 Java 配置进行 Spring bean 管理--转
  4. 数组和链表的区别以及应用场景
  5. NLP中数据增强的综述,快速的生成大量的训练数据
  6. C# winform WebBrowser怎么获取js中的变量的值?怎么触发js的事件?
  7. 1036 跟奥巴马一起编程 (15分)——16行代码AC
  8. 锅巴H264播放器地址和说明
  9. Ros学习——roslaunch
  10. java编程——【Mybatis】之${}和#{}的区别
  11. php json转义字符函数,PHP转义Json里的特殊字符的函数
  12. 文字投影_DLP投影仪指标含义汇总(文字稿)
  13. 本周Asp.net源码更新(6.25-6.29)
  14. 最简单的《域中隔离用户的FTP站点》详解
  15. 世界第一个聊天机器人源代码_这是世界上第一个“活着”的机器人
  16. 「How The Economic Machine Works」《经济机器是如何运转的》中文字幕
  17. FireFox精彩电视广告欣赏
  18. Mac如何卸载系统自带软件?macbook系统软件怎么删除?
  19. IDEA使用手记——IDEA主菜单被隐藏了!!
  20. IT:成为服务经纪人的未来

热门文章

  1. 中国开源走向第二梯队!
  2. python excel 微信_Python读写Excel文件第三方库汇总,你想要的都在这儿!,微信文件第三方打开...
  3. C# + HotKey
  4. IO多路复用和epoll反应堆
  5. 记录在训练深度学习算法过程中遇到的问题及解决办法。持续更新中....
  6. 高小英和张东健1998年合作出演过爱情片《恋风恋歌
  7. windows权限维持的方法
  8. cf_Gym 101572 K.Kayaking Trip
  9. c4d如何把文字贴在物体表面_C4D立体贴地面字基础知识点
  10. correl函数相关系数大小意义_教你利用Correl函数返回相关系数并确定属性关系