Unity 机器学习 ML-Agents 基础

  • Unity 官方示例下载
    • ML-Agents 部分
    • Python 下载
  • Anaconda
    • Anaconda 环境变量
    • Anaconda 基础环境
    • Anaconda 虚拟环境构建 ML-Agents
      • 安装 ML-Agents Python 包
      • 安装 ML-Agents 包
  • ML-Agents 入门指南
    • Unity Hub 部分
    • 虚拟环境 训练
      • 虚拟环境 训练运行:
      • 虚拟环境 开始训练:
      • 虚拟环境 观察训练进度:
      • 虚拟环境 停止训练
      • 虚拟环境 恢复训练
      • 虚拟环境 训练模型
  • ML-Agents 打造新的学习环境
    • ML-Agents 资产导入
    • Unity 场景创建
    • Unity 代码部分
  • Anaconda 执行
    • rollerball_config.yaml 机器学习逻辑处理代码
    • Anaconda 虚拟环境
  • 地址合集
  • 虚拟环境命令小结
    • 虚拟环境安装
    • 虚拟环境 训练命令

Unity 官方示例下载

Unity 中国 地址 : Unity 中国 ML-Agents 示例下载

进入官方网站

点击机器学习代理

ML-Agents 部分

ML_Agents: 下载GitHub 项目.

下载 机器学习项目 选择想要下载的版本


当然你也可以在主页自主点击文档。


Unity ML-Agents 工具包文档地址

Python 下载

Python 下载地址

使用 ML-Agents Toolkit 的条件:
重要的是:1. Unity 2. Python(根据版本不同下载不同的,我这里使用的是 3.7)3. Anaconda (Python 可视化窗口软件)

这里点击安装就会跳转 Python 下载界面

选择你想要安装的版本下载。下载完毕之后默认安装就行。

Anaconda

Anaconda 官方网站

打开 Anaconda 官方网站

下载 Anaconda  下载完毕之后看自己的喜好安装,尽量不要有中文路径!!!!

Anaconda 环境变量

下载安装完毕之后 按菜单键 找到Anaconda Prompt 打开

键入 conda --version 查看是否有返回值 如果没有 就是需要添加环境变量

搜索栏 搜索环境变量

点击环境变量按钮

找到 系统变量的 Path 点击编辑 当然双击也是可以的

点击新建将这四条添加进去:%UserProfile%\Anaconda3\Scripts%UserProfile%\Anaconda3\Scripts\conda.exe%UserProfile%\Anaconda3%UserProfile%\Anaconda3\python.exe

添加完毕之后一路确认


点击应用 确定 Anaconda环境变量就添加好了

Anaconda 基础环境

新建自己的环境

等待加载

加载完毕之后左键点击,再点击 Open Treminal 打开 虚拟环境

Anaconda 虚拟环境构建 ML-Agents

安装 ML-Agents Python 包

您必须在安装 ML-Agents 之前单独安装 PyTorch 包
PyTorch 包安装命令:
pip3 install torch~=1.7.1 -f https://download.pytorch.org/whl/torch_stable.html

安装 ML-Agents 包

安装 ML-Agents包 命令:
python -m pip install mlagents==0.28.0
如果到目前为止都没有什么报错,基本上就算可以正常联通了。

ML-Agents 入门指南

ML-Agents 入门指南

Unity Hub 部分

解压 GitHub  ML-Agents 压缩包


虚拟环境 训练

导航到克隆 ML-Agents 存储库的文件夹(看你解压在那个位置)复制路径
我的路径是:D:\Unity\Plug-in\ML\ml-agents-release_19\ml-agents-release_19

导航到 ML-Agents 根目录

虚拟环境 训练运行:

训练环境运行:
mlagents-learn config/ppo/3DBall.yaml --run-id=first3DBallRun05
config/ppo/3DBall.yaml是我们提供的默认训练配置文件的路径。该config/ppo文件夹包含我们所有示例环境的训练配置文件,包括 3Dball
run-id 是此培训课程的唯一名称

当屏幕上显示“按 Unity 编辑器中的播放按钮开始训练”消息时,您可以在 Unity 中按“播放”按钮开始在编辑器中进行训练。
Unity 运行效果:

虚拟环境 开始训练:

如果mlagents-learn运行正确并开始训练,您应该会看到如下内容:

虚拟环境 观察训练进度:

观察训练进度命令:
tensorboard --logdir results

虚拟环境 停止训练

退出训练: Ctrl+C
停止训练后 在浏览器 键入 http://localhost:6006/ 可以查看训练进度。
最重要的统计数据是Environment/Cumulative Reward 应该在整个训练过程中增加,最终收敛到100代理可以积累的最大奖励附近。

虚拟环境 恢复训练

恢复训练,请再次运行相同的命令,并附加--resume标志
恢复训练命令:
mlagents-learn config/ppo/3DBall.yaml --run-id=first3DBallRun05 --resume

虚拟环境 训练模型

索引到 存储库的文件夹 results 文件下

打开你的训练文件夹 就是 run-id 文件名称

选中最新的训练文件。

也可以 直接选中外部的  .onnx 文件

导入 Unity

搭载:
训练模型 赋值

运行效果:

ML-Agents 打造新的学习环境

ML-Agents 打造新的学习环境官方地址

ML-Agents 资产导入

打开 Unity Package Manager

点击磁盘添加包

在 ML-Agents 根目录下 找到 com.unity.ml-agents 文件夹  打开

选中 package.json 导入

导入成功后 可以Packahes 文件夹 下 找到 MLAgents 文件夹

Unity 场景创建

Target  目标物体创建:参数自己感觉合适就行

地面创建:参数自己感觉合适就行

代理器 创建

创建之后的层级

Unity 代码部分

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.MLAgents;
using Unity.MLAgents.Sensors;
using Unity.MLAgents.Actuators;public class RollerAgent_ZH : Agent
{[Header("目标")]public Transform Target;[Header("增强力系数")]public float _ForceMultiplier = 10;[Header("移动组件")]Rigidbody _RigiBody;void Start(){_RigiBody = GetComponent<Rigidbody>();}/// <summary>/// 设置新集的环境/// 场景以随机方式初始化,以使代理能够学习在各种条件下解决任务/// </summary>public override void OnEpisodeBegin(){// 如果特工掉下去,动量为零if (this.transform.localPosition.y < 0){this._RigiBody.angularVelocity = Vector3.zero;this._RigiBody.velocity = Vector3.zero;this.transform.localPosition = new Vector3(0, 0.5f, 0);}// 将目标移动到新点Target.localPosition = new Vector3(Random.value * 8 - 4,0.5f,Random.value * 8 - 4);}/// <summary>/// 观察环境/// 代理收集的信息包括目标的位置、代理本身的位置以及代理的速度/// </summary>/// <param 传感器="sensor"></param>public override void CollectObservations(VectorSensor sensor){// 目标和代理位置sensor.AddObservation(Target.localPosition);sensor.AddObservation(this.transform.localPosition);// 代理速度sensor.AddObservation(_RigiBody.velocity.x);sensor.AddObservation(_RigiBody.velocity.z);}/// <summary>/// 动作和奖励逻辑/// </summary>/// <param 行动缓冲区="actionBuffers"></param>public override void OnActionReceived(ActionBuffers actionBuffers){// 动作, size = 2Vector3 controlSignal = Vector3.zero;controlSignal.x = actionBuffers.ContinuousActions[0];controlSignal.z = actionBuffers.ContinuousActions[1];_RigiBody.AddForce(controlSignal * _ForceMultiplier);// 奖励float distanceToTarget = Vector3.Distance(this.transform.localPosition, Target.localPosition);// 达到目标if (distanceToTarget < 1.42f){SetReward(1.0f);EndEpisode();}// 掉下来的平台else if (this.transform.localPosition.y < 0){EndEpisode();}}/// <summary>/// 键盘控制代理/// </summary>/// <param 行动数组="actionsOut"></param>public override void Heuristic(in ActionBuffers actionsOut){var continuousActionsOut = actionsOut.ContinuousActions;continuousActionsOut[0] = Input.GetAxis("Horizontal");continuousActionsOut[1] = Input.GetAxis("Vertical");}
}
搭载详情:
需要新添加组件: DecisionRequester
注意:参数更改!参数更改!参数更改! 重要的事情说三遍。

Anaconda 执行

打开 Anaconda 切换环境 左键打开 虚拟环境

导航到 ML-Agents 根目录

rollerball_config.yaml 机器学习逻辑处理代码

behaviors:RollerBall:trainer_type: ppohyperparameters:batch_size: 10buffer_size: 100learning_rate: 3.0e-4beta: 5.0e-4epsilon: 0.2lambd: 0.99num_epoch: 3learning_rate_schedule: linearbeta_schedule: constantepsilon_schedule: linearnetwork_settings:normalize: falsehidden_units: 128num_layers: 2reward_signals:extrinsic:gamma: 0.99strength: 1.0max_steps: 500000time_horizon: 64summary_freq: 10000
在 config 文件夹下 创建 .tex 文件

添加文件内容 就是 上面的代码

更改名称

Anaconda 虚拟环境

如果你也是出现这样的错误,就说明:在此运行ID中找到以前的数据。要么指定一个新的运行ID,使用 --resume 恢复运行要么使用 --force 参数覆盖现有的数据。
我这里选择的是覆盖执行 --force执行命令:
首次执行:
mlagents-learn config/rollerball_config.yaml --run-id=RollerBall
恢复运行:
mlagents-learn config/rollerball_config.yaml --run-id=RollerBall --resume
覆盖执行:
mlagents-learn config/rollerball_config.yaml --run-id=RollerBall --force

命令执行之后点击 播放按钮 就能看到效果了

训练结果:
第一个框选的是:训练模型输出路径。
第二个框选的是:模型训练详情。Ctrl + C 浏览器地址栏查看

模型训练结果:

导入Unity

最终效果:

地址合集

清华大学开源软件镜像站

Anaconda 官方网站

ML-Agents GitHub 项目地址.

Unity 中国 ML-Agents 示例下载

Python 下载地址

安装 PyTorch 包地址

Unity ML-Agents 工具包文档地址

Unity ML-Agents 安装文档地址

Unity ML-Agents入门指南文档地址

Unity ML-Agents 打造新的学习环境文档地址

Unity ML-Agents 使用-Tensorboard.md文档地址

虚拟环境命令小结

虚拟环境安装

克隆 ML-Agents Toolkit 存储库(可选)
git clone --branch release_19 https://github.com/Unity-Technologies/ml-agents.git(Windows) 安装 PyTorch(必选)
pip3 install torch~=1.7.1 -f https://download.pytorch.org/whl/torch_stable.html安装 mlagentsPython 包(必选)
python -m pip install mlagents==0.28.0高级:用于开发的本地安装(注意安装顺序)(可选)
pip3 install torch -f https://download.pytorch.org/whl/torch_stable.html
pip3 install -e ./ml-agents-envs
pip3 install -e ./ml-agents

虚拟环境 训练命令

首次执行:
mlagents-learn config/rollerball_config.yaml --run-id=RollerBall
恢复运行:
mlagents-learn config/rollerball_config.yaml --run-id=RollerBall --resume
覆盖执行:
mlagents-learn config/rollerball_config.yaml --run-id=RollerBall --force停止训练:
Ctrl + C
观察训练进度:
tensorboard --logdir results

暂时先这样吧,如果有时间的话就会更新,实在看不明白就留言,看到我会回复的。
路漫漫其修远兮,与君共勉。

Unity 机器学习(ML-Agents) 基础相关推荐

  1. unity机器学习入门栗子之3D平衡球

    需要的插件:ML-agent:https://store.unity.com/download?ref=update 或者csdn下载地址:http://download.csdn.net/downl ...

  2. 年终总结:2021年五大人工智能(AI)和机器学习(ML)发展趋势

    明年,人工智能技术将在企业运营中更加根深蒂固. 人工智能(AI)和机器学习(ML)一直在改变着我们的世界,但是2020年给这两个改变游戏规则的人带来了新的机遇和紧迫性-预计2021年会有更大的发展. ...

  3. [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)

    本文转自:https://blog.csdn.net/walilk/article/details/50978864 引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记, ...

  4. 快速入门Unity机器学习:一:

    目录 1.目的 1.1 记录一下 2.参考 1.SIKI学院 3.注意 4. 课时 3 : 100 - Unity机器学习案例下载 5. 课时 4 : 101 - 狗子的学习 6. 课时 5 : 10 ...

  5. 人工智能AI和机器学习ML对量化交易领域的影响

    BigQuant 人工智能量化投资平台 是一站式的Python+机器学习+量化投资平台,对人工智能量化投资感兴趣的朋友可以直接打开浏览器进一步学习研究. 1. 人工智能与机器学习对于交易领域的影响 交 ...

  6. AI:人工智能概念之机器学习ML、深度学习DL、数据挖掘、知识发现、模式识别等重要领域之间比较关系结构图之详细攻略

    AI:人工智能概念之机器学习ML.深度学习DL.数据挖掘.知识发现.模式识别等重要领域之间比较关系结构图之详细攻略 目录 AI与ML.DL的概念 AI与ML.DL的结构关系图 参考文章:<201 ...

  7. ML:人工智能之机器学习ML解决实际应用问题的思路总过程(最全)

    ML:人工智能之机器学习ML解决实际应用问题的思路总过程(最全) 目录 详细思路结构 详细思路结构

  8. 机器学习算法的基础知识

    机器学习算法的基础知识 1.评估指标 2.偏差与方差(过拟合与欠拟合) 3.正则化(解决过拟合) 4.梯度下降算法(算法优化方式) 5.数据不平衡 1.评估指标 预测值 0 1 实际 0 TN FP ...

  9. Unity TileMap 2D 工具基础教程

    Unity TileMap 2D 工具基础教程 Unity TileMap 2D 工具基础教程 TileMap 工程创建 Sprite Editor 工具使用 TileMap 功能说明 TilePal ...

  10. 机器学习(Machine Learning)基础

    机器学习(Machine Learning)基础 概念及用途 专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能.它是人工智能的核心,是使计 ...

最新文章

  1. 调试coffee script 的一个技巧
  2. sql LEFT JOIN RIGHT JOIN(左连接)(mysql)
  3. MapReduce 计算框架如何运作
  4. java反射用法示例_Java包| 类型,用法,示例
  5. python 爬取上海体育彩票文章标题、时间、内容
  6. 10分钟利用django搭建一个博客
  7. 2020软考系统架构设计师总结
  8. 谷歌搜索引擎API使用
  9. 硬盘柱面损坏怎么办_硬盘坏道屏蔽工具,详细教您如何修复硬盘坏道
  10. python编辑函数求n阶乘fact_python中fact函数的用法
  11. 乐视网正式聘用刘延峰担任公司总经理 任期三年
  12. js字符转换成分数_JavaScript实现分数显示
  13. Redis(一)数据结构解析
  14. formality 命令/变量的使用及各种设置
  15. win10电脑计算机内存不足,win10系统电脑总是提示“计算机的内存不足”的恢复方案...
  16. 服务器内存2rx4是什么意思_云主机服务器内存(服务器内存1rx4和2rx4)
  17. 游戏建模行业就国内发展的前景,以及行业变化是如何的?
  18. java-net-php-python-jspm光影婚纱影楼系统设计与实现系统计算机毕业设计程序
  19. STM32F1系列超声波测距程序
  20. 中国的银行英文缩写趣解

热门文章

  1. 抽奖助手自动参与抽奖
  2. 实训(一)学生管理系统
  3. 一步一步搭建自己的web系统(一):搭建后端服务
  4. 堆、栈,队列,栈,树的个人理解和记录
  5. Whai_springmvc笔记
  6. python爬取简历模板_python爬取简历模板
  7. 64码高清电视 android版,64体育app
  8. 提高微服务安全性的11个方法
  9. memcmp比较结构体
  10. python数据预处理 样本分布不均(过采样和欠采样)