问题标签 [ml-agent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
599 浏览

python - C# Unity - 统一从相机中提取像素数组并在 python 中显示

我正在尝试做两件事:

  1. 从相机中检索 84 x 84 x 3 像素阵列
  2. 将此数组发送到可以显示的 python 脚本

我坚持使用 1),所以目前我只是将字节数组写入 txt 文件,然后在 python 中打开文件。然而,我不断得到这张图片,这让我相信字节数组实际上并没有被像素数据正确实例化。[ 图像] 1

这是 C# 统一代码:

这是python代码:

任何帮助将不胜感激,因为我不知道哪里出错了,而且我的调试尝试似乎是徒劳的。

0 投票
0 回答
75 浏览

tensorflow - 在 Tensorflow 或 Keras 中运行 ML-Agent 训练的 Frozen Graph

我正在尝试采用由 Unity ML-Agents 训练的模型并在 Tensorflow / Keras 中运行推理。关于如何做到这一点的任何提示?

我尝试将冻结的图形文件加载到 TF 图形中,然后提取输入/输出张量。我假设 vector_observation 是输入操作,而 action 是输出操作。

然后我试图输入我在 Unity (AddVectorObs) 上的输入......

但它在运行时给了我一个关于 action_mask 的错误。

我可能的输出是这样的 2 个分支:[0,1,2];[0,1,2]... 所以我想这就是为什么它说 action_masks 的形状为 6。

我对 Tensorflow 很陌生,如果我错过了一些愚蠢的事情,我深表歉意。谢谢!

这是神经网络格式的图片:

神经网络输入张量

神经网络架构

0 投票
1 回答
1416 浏览

python - Unity - 提取相机像素阵列非常慢

我正在使用下面的代码行在每一帧从相机中提取像素数组,将其保存为 jpg,然后在 jpg 上运行 python 进程。虽然它有效,但速度非常慢。瓶颈似乎是统一读取像素。python进程本身只持续0.02秒。

谁能建议我可以加快这个过程的相对简单的方法?

我见过这个,但它太高级了,我无法理解如何使其适应我的用例。

0 投票
0 回答
123 浏览

unity3d - 是否可以统一使用经过训练的身体跟踪回归模型?

我已经使用 TensorFlow 的回归训练了一个模型,以不断地估计人体姿势。现在,我想知道是否可以统一使用这个训练有素的回归模型来跟踪人的手和身体。我看到使用 MLAgent 可以统一使用强化学习模型。此外,分类模型以前是统一使用的。另外,我知道有很多与统一人体姿势估计相关的工作;但是,我不确定是否可以使用这样的训练模型并统一估计人体跟踪?

0 投票
6 回答
3205 浏览

c# - Unity ML 代理程序包管理器未导入执行器脚本

我想测试 Unity ML 示例“3D Ball”。所以,我设置了环境:

  1. 通过 Unity 包管理器导入 ML 代理包。
  2. 将 Unity 官方 GitHub 中的 ML Agent 示例资产复制到我的项目文件中。

然后,我打开示例场景并播放该场景。但是每个包含“使用 Unity.MLAgents.Actuators”的代码都会失败,并出现以下错误:

Assets\test.cs(5,22):错误 CS0234:命名空间“Unity.MLAgents”中不存在类型或命名空间名称“Actuators”(您是否缺少程序集引用?)

所以,我试图找到 MLAgents.Actuator 模块的源代码。但我还没有找到任何东西。

有人说执行器模块是在 ML Agent 1.0.3 之后应用的,但我导入了最新版本(v. 1.0.4)。

如何正确导入 ML Agents 包?每个 YouTube 教程都没有显示我遇到的问题。

这是我的环境:

  • Unity 版本:Unity 2020.1.0f
  • 机器学习代理版本:1.0.4 版
  • ML 代理示例:版本 7
0 投票
1 回答
440 浏览

python - unity ml 代理 python api 的奇怪结果

我正在使用 3DBall 示例环境,但我得到了一些非常奇怪的结果,我不明白它们为什么会发生。到目前为止,我的代码只是一个 for range 循环,它查看奖励并用随机值填充所需的输入。但是,当我这样做时,从未显示出负奖励,并且随机不会有决策步骤,这是有道理的,但它不应该继续模拟直到有决策步骤吗?任何帮助将不胜感激,因为除了文档之外,对此几乎没有追索权。

0 投票
1 回答
364 浏览

c# - ML 代理没有学习相对“简单”的任务

我试图创建一个简单的 ML 代理(球)来学习向目标移动并与目标发生碰撞。

不幸的是,代理似乎并没有在学习,而是一直在看似随机的位置上四处移动。在 5M 步之后,平均奖励保持在 -1。

关于我做错了什么有什么建议吗?

TensorFlow 累积奖励图

我的观察在这里:

我的 YAML 文件配置:

Unity Inspector 组件配置

奖励(全部在代理脚本上):

0 投票
1 回答
179 浏览

c# - ML Agents 中的课程学习 - YAML 配置

我已经建立了一个学习环境,在这个环境中,球要学会直接冲向目标并与目标发生碰撞。目标的位置是随机的,但目标生成点的半径可以通过游戏控制器中设置的公共变量来控制,以改变难度。

我的意图是通过使用 YAML 课程中的课程来增加距离 - 但是,当我尝试以下操作时,它似乎并没有根据课程计划增加目标生成距离。

我究竟做错了什么?我觉得我在脚本中遗漏了一些将课程价值与课程配置联系起来的东西。

0 投票
1 回答
92 浏览

c# - 我将如何编写一个定时器,它可以作为协程正常工作,作为无效?

我想训练一个 Unity ML 代理,并且在其功能的一部分,现在有一个编写为 Coroutine 的计时器。我觉得协程在训练中表现不佳,所以我想把它写成 void 而不是协程。协程看起来像这样:

这在正常播放模式下工作正常。但现在我想让它对我的代理培训无效,而且我尝试的每一次尝试都在短时间内造成这种损害,而不仅仅是一次。我想这是因为我不知道如何获得应该造成伤害的确切时刻。另外,首先我使用 Time.deltaTime,我只是将它切换到 Time.fixedDeltaTime 作为测试,以检查这是否会在训练中表现更好。

_isCompleted bool 在调用这个协程的方法中被检查和设置,如下所示:

0 投票
1 回答
692 浏览

c# - 不明白如何在 MLAgents 中使用 Ray Perception Sensor 2D 组件

所以我开始学习 MLAgents 包。我想用一个通过光线检测环境(玩家、其他 AI、小行星等)的 AI 制作一个小型 2D 太空游戏。

我发现您可以将 Ray Perception Sensor 2D 组件添加到您的代理。我了解它是如何工作的,但我找不到任何关于如何将它与您的代码一起使用的信息。

我只想让特工四处飞,给它一个奖励,当它发现雷的东西时向它的目标射击。Like => if (ray.tag == target) then shoot() and Reward(+1);