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>();
}
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);
}
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);
}
public override void OnActionReceived(ActionBuffers actionBuffers)
{
Vector3 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();
}
}
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: ppo
hyperparameters:
batch_size: 10
buffer_size: 100
learning_rate: 3.0e-4
beta: 5.0e-4
epsilon: 0.2
lambd: 0.99
num_epoch: 3
learning_rate_schedule: linear
beta_schedule: constant
epsilon_schedule: linear
network_settings:
normalize: false
hidden_units: 128
num_layers: 2
reward_signals:
extrinsic:
gamma: 0.99
strength: 1.0
max_steps: 500000
time_horizon: 64
summary_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
暂时先这样吧,如果有时间的话就会更新,实在看不明白就留言,看到我会回复的。 路漫漫其修远兮,与君共勉。
|