Unity的ML-agent训练教程(附环境配置流程)

这篇具有很好参考价值的文章主要介绍了Unity的ML-agent训练教程(附环境配置流程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

unity的ML-agent训练流程

1.配环境

1)创建虚拟环境

下载好anaconda后打开anaconda prompt,新建虚拟环境,命名为Unity,通过以下指令:

conda create -n Unity python=3.10

接下来提过指令

conda activate Unity

激活虚拟环境Unity

2)在虚拟环境内配置需要用的库

在GitHub上下载unity官方的ml-agent包仓库,下载到位置

D:\Programming\unity\projects 
#只是本人的存储位置,具体存储位置由你自行决定

在anaconda prompt通过依次输入指令导入库文件

pip install -e ./ml-agents-envs
pip install -e ./ml-agents

一般会因为网速问题导致报错超时,可将指令改为如下形式

pip install -e ./ml-agents-envs -i https://pypi.tuna.tsinghua.edu.cn/simple

pip --default-timeout=100 install -e ./ml-agents-envs

等待提示导入完成后输入指令

mlagents-learn --help

若出现提示文本,则环境配置成功

2.训练

0)编写配置文件

带有各类训练参数配置的文件,格式为.yaml

1)启动训练程序

打开anaconda prompt,在anaconda prompt内cd到ml-agent包所在的路径后,例如使用3DBall的config文件训练模型,输入以下指令

                #config文件路径          #id可任意取名
mlagents-learn config/ppo/3DBall.yaml --run-id=test --train

接着会出现unity标识和和[INFO]开头的提示信息,此时可打开unity,启动游戏,如果会开始刷新[INFO]开头的提示信息,说明已经开始正常训练模型。(图用的是Basic.yaml)

agent 如何训练,机器学习,unity,人工智能,机器学习,游戏引擎

训练过程会根据config文件设置的步数显示奖励数据(此处设置的是每1000步输出一次奖励数据)

agent 如何训练,机器学习,unity,人工智能,机器学习,游戏引擎

如想手动中断训练,可在anaconda prompt按下快捷键Ctrl+C中断

2)通过tensorboard查看训练统计参数

输入以下指令

                     #训练的模型保存路径
tensorboard --logdir result/xxx

会输出一个tensorboard网址,打开则为训练统计图

agent 如何训练,机器学习,unity,人工智能,机器学习,游戏引擎

3)获取模型并启用

模型训练完后,窗口会提示训练好的模型文件(格式为.onnx)存放的位置,可将模型文件拖入unity项目中,将训练的智能体中找到Behavior Parameters组件,将其中的Model属性修改为训练后生成的模型文件,即可启动游戏看训练的效果。

*.补充知识

学习过程:通过配置智能体上的各类组件和脚本,然后通过anaconda prompt运行训练脚本进行学习。

必要的组件:

1)Behavior Parameters:用于调节驱动智能体输入的各类参数

agent 如何训练,机器学习,unity,人工智能,机器学习,游戏引擎

几个重要的参数

Space Size:输入的维度

Continuous Action:输出的连续动作数

Discrete Branch:输出的离散动作数

Model:使用的模型

2)Decision Requester:设定智能体如何采取决策

agent 如何训练,机器学习,unity,人工智能,机器学习,游戏引擎

Decision Period:采取决策的时间间隔

Decision Step:采取决策的步数

Take Actions Between:不采取决策是否执行动作

3)继承自Agent类的C#脚本:我们自己编写的用于设置训练细节的脚本

通过继承Agent类,可重写以下方法:

Initialize方法:初始化环境,获取组件信息,设置参数在这里完成。

CollectObservations方法:这个方法会收集当前游戏的各种环境,包括智能体的位置,速度等信息,ML-Agents会把这些信息自动生成Tensor,进行计算。这里相当于设置神经网络的输入,如果是摄像机输入而不是向量输入的情况下此函数什么都不用做。输入的变量要进行标准化!

OnActionReceived方法:实现的是整个游戏中一个Step中的操作,接收神经网络的输出,使其转换为智能体的动作,设置奖励函数,并且判断游戏是否结束。建议将EndEpisode方法在该方法中调用而不是在Update中调用。

OnEpisodeBegin方法:每次游戏结束后,重开一轮需要做的处理,比如重置位置信息等。

Heuristic方法:如果想自己操作智能体,定义该方法,游戏就会采集玩家的输出信息,可以学习玩家的思维,大大促进训练教程。

CollectDiscreteActionMasks方法:在特殊情况下屏蔽某些不需要的AI操作(如地图边界阻止)

4)Demonstration Recorder:记录玩家操作的组件,记录完存储为.demo文件

agent 如何训练,机器学习,unity,人工智能,机器学习,游戏引擎

Record:是否记录操作,勾选则在运行时记录

Num Steps To Record:记录的步数,值为0时表示无穷大

Demonstration Name:录制后得到的文件名

Demonstration Directory:录制文件存放的路径,图中为{项目路径}/Demo

若要使用.demo文件进行训练,需要在.yaml文件中加入以下配置文章来源地址https://www.toymoban.com/news/detail-830264.html

behaviors:
  trainDemo: #与.demo文件名一致
    trainer_type: ppo
    reward_signals:
      gail:
        strength: 0.5
        demo_path: Demo/trainDemo.demo
    behavioral_cloning:
      strength: 0.5
      demo_path: Demo/trainDemo.demo
    max_steps: 500000
  strength: 0.5
    demo_path: Demo/trainDemo.demo
behavioral_cloning:
  strength: 0.5
  demo_path: Demo/trainDemo.demo
max_steps: 500000

到了这里,关于Unity的ML-agent训练教程(附环境配置流程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Unity-ML-Agents注意事项及报错、警告等解决方式

    在 ml-agents 0.16.0 版本中,Unity 中的 ML-Agents 插件中包含了名为 Brain 的组件,用于控制智能体的决策过程。然而,在 ml-agents 0.28.0 版本中,该组件已经被重构为 IAgent 接口和 Agent 类。因此,如果您正在使用 ml-agents 0.28.0 或更高版本,您不会在 Unity 的 \\\"Add Component\\\" 菜单中找到 Br

    2024年02月09日
    浏览(9)
  • Unity-ML-Agents--Custom-SideChannels.md-代码解析

    官方文档: https://github.com/Unity-Technologies/ml-agents/blob/release_19/docs/ML-Agents-Overview.md#additional-features https://github.com/Unity-Technologies/ml-agents/blob/release_19/docs/Custom-SideChannels.md 目录 1.Unity C# 示例 1.1 StringLogSideChannel类 1.1.1 ChannelId = new Guid(\\\"621f0a70-4f87-11ea-a6bf-784f4387d1f7\\\"); 1.1.2 protected o

    2024年02月05日
    浏览(17)
  • Unity Perception合成数据生成、标注与ML模型训练

    Unity Perception合成数据生成、标注与ML模型训练

    在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D场景编辑器 任何训练过机器学习模型的人都会告诉你,模型是从数据得到的,一般来说,更多的数据和标签会带来更好的性能。 收集数据,尤其是标记数据非常耗时,因此成

    2024年02月06日
    浏览(13)
  • Unity中打包AAR流程(含环境配置)

    Unity中打包AAR流程(含环境配置)

    目录 前言 一、【环境配置】 1.【配置JDK】 (1)JDK下载 (2)JDK安装 (3)JDK环境配置 (4)检查安装是否成功 (5)JRE配置 2.【配置Gradle】 (1)确认Gradle版本 (2)Gradle下载 (3)Gradle安装 (4)Gradle环境配置 (5)检查安装是否成功 3.【编写打包AAR脚本】 (1)项目工程切换

    2024年02月06日
    浏览(14)
  • nnUNet保姆级使用教程!从环境配置到训练与推理(新手必看)

    nnUNet保姆级使用教程!从环境配置到训练与推理(新手必看)

    本人初步接触深度学习与医学图像分割领域,第一个项目就是 运用nnUNet网络对BrainTumour的数据集进行分割 ,在学习的过程中,学了很多资料,踩了很多坑,也解决了很多bug,在此把自己的学习经验分享出来,希望有需要的同学可以少走一些弯路。 本篇博客的操作均在服务器

    2024年02月03日
    浏览(12)
  • 基于VITS 快速微调的本地环境配置、本地训练以及本地推理的教程

    该教程能教会读者如何使用本地服务器使用VITS微调训练自己的想要的角色的声音并且本地推理,注意只能使用linux版本进行训练,但是推理可以在windows上完成。 STEP 0  使用conda配置虚拟环境(个人习惯,也可以直接在本地服务器上嗯配) STEP 1 复制代码库并安装运行环境 记得没

    2023年04月27日
    浏览(15)
  • Robbie教程 Unity开发环境配置

    Robbie教程 Unity开发环境配置

    进入Unity官网 Unity官方下载_Unity最新版_从Unity Hub下载安装 | Unity中国官网   点击下载Unity 点击Unity2018.x   选择Unity2018.4.9版本(因为该版本和Robbie教程相同,不要盲目追求新版本),选择从Hub下载    根据你的操作系统,选择相应版本,大多数人都是Windows,不知道自己用的啥

    2023年04月24日
    浏览(11)
  • ML-Agents与自己的强化学习算法通讯——PPO篇

    在上一篇文章ML-Agents与python的Low Level API通信中,我简要介绍了Python与Unity端的ML-Agents插件的通讯代码,如何正确运行一个能够进行强化学习训练的Unity环境,并获取到响应的信息,接下来将介绍如何利用自己的强化学习算法进行训练。 这里我利用了强化学习库PARL来训练ML-Ag

    2023年04月18日
    浏览(10)
  • 【边缘端环境配置】英伟达Jetson系列安装pytorch/tensorflow/ml/tensorrt环境(docker一键拉取)

    【边缘端环境配置】英伟达Jetson系列安装pytorch/tensorflow/ml/tensorrt环境(docker一键拉取)

    Jetson系列板卡是算法边缘端部署无法避开的一道坎,作为英伟达旗下产品,可以使用tensorrt加速,因此用户较多,生态较好;但是由于是ARM架构,因此无法使用x86部署方式,用过的都有一堆血泪史可以诉说,以下是英伟达官方介绍: NVIDIA® Jetson™ 是适用于自主机器和其他嵌入

    2023年04月22日
    浏览(12)
  • Unity Meta Quest MR 开发教程:(一)混合现实 MR 透视 Passthrough 环境配置

    Unity Meta Quest MR 开发教程:(一)混合现实 MR 透视 Passthrough 环境配置

    Meta Quest 一体机具有透视(Pass through)的功能。它通过 VST(Video See Through)技术,使用户能够透过头显看到现实中的场景,并且能将虚拟的物体融入于透视场景中,与用户进行交互。利用这个功能,我们可以开发一些混合现实 MR 应用,将虚拟和现实相互融合。 前期需要的一体

    2024年02月12日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包