问题标签 [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 回答
319 浏览

unity3d - 使用内部大脑进行预训练网络的 Unity 机器学习导致崩溃

我试图让 Unity 的机器学习项目运行起来。该项目可以在这里找到:https ://github.com/Unity-Technologies/ml-agents

按照所有必要的步骤进行设置,一切正常,直到我尝试在内部大脑中使用预先训练的模型,例如在 3D-Ball 示例中。在编辑器中按播放时,它说已停止工作并且编辑器崩溃。成功编译的可执行文件也是如此。

由于我找不到任何崩溃日志,我绝对不知道这是什么原因。有人遇到同样的问题并解决了,或者对此有什么想法吗?

我将添加我为设置项目所做的步骤,以防有人想要重现或检查我犯的错误:

  • 从 github 下载压缩项目
  • 使用 Unity 2018.1.1f1 打开项目
  • 将 ENABLE_TENSORFLOW 添加到预定义的符号
  • 下载并安装 TensorFlowSharp 插件
  • 在 3D Ball 场景中选择大脑并将 BrainType 切换为 Internal
  • 在编辑器中运行或编译并运行,两次都导致崩溃

编辑

让我感到奇怪的是,我使用编译后的可执行文件在 python 中训练外部大脑的工作很好。所以我的想法是,如果它正在进行前向传播和反向传播,那么前向传递一个训练有素的网络应该更容易。但它说虽然外部大脑仍然是实验性的,所以不确定这是否会在未来的一些补丁中起作用。

编辑 2

所以我尝试在旧版本的 githubs 项目中使用内部大脑,然后工作得很好。我还使用了旧版本的 TensforflowSharp 插件。我会尝试找出哪个版本仍然有效,并将我的结果发布在这里;)

0 投票
2 回答
6746 浏览

python - .bytes 文件统一的目的是什么?

我的朋友给我发了统一的机器学习模型的 .bytes 文件。但我不知道如何在 python 中为 ML 打开它。任何人都可以统一给我关于 .bytes 文件的答案。

  1. 它的目的是什么?
  2. 如何将它用于python?
0 投票
1 回答
450 浏览

c# - ml-agents 包中 Unity3D 的奖励逻辑

Unity3D 有一个名为 ML-agents 的强化学习包,我正在使用它来理解它的组件。对于我的项目,我需要编写自己的逻辑来设置 Unity3D 的奖励(不是使用 C# 逻辑的“addReward”,而是编写 Python 代码来设置 Unity 的奖励)。

我想知道我是否可以使用 ML-agents 包提供的 Python API 来使用 env 观察并使用 Unity 设置的自定义逻辑更新奖励(并发送回 Unity)?在哪里寻找这样做?

换句话说(示例)。在 3Dball 示例中,在 Unity3D 中设置了奖励逻辑,因此如果球停留在平台上获得正奖励,如果球从平台上落下,则获得负奖励。此逻辑在 Unity3D 中使用 C# 实现,并确定球的位置(矢量位置)与平台进行比较。对于每个动作,代理调用 env.step(action) 并获取 (reward, state...) 的元组。如果我想在 Unity 之外编写逻辑怎么办?例如,如果我想编写一个 Python 程序来读取观察结果(来自 Unity3D)并在不使用 Unity 奖励逻辑的情况下更新奖励?这可能吗?我不明白这个选项在 ML-agents 的 Python API 中的位置。

目前,我正在考虑在 Unity3D 中用 C# 设置奖励的那一行之间运行一个外部 python 程序,但我想知道这是否过于复杂,是否有更简单的解决方案。

任何帮助将非常感激。

问候圭多

0 投票
1 回答
497 浏览

python - python 3.5的Tensorflow 1.7.1错误

我安装了 tensorflow 1.7.1 以与 Unity ML-Agent 一起使用。我使用以下命令安装 tensorflow:

安装正常,但是当我尝试导入 tensorflow 时出现此错误:

Microsoft C++ 2015 可再发行版安装在我的系统上,我使用 dos 命令轻松找到 MSVCP140.dll(如常见安装问题文档中建议的那样):

我不安装 CUDA 和 cuDNN 的东西,因为我没有 cuda 卡,我只按照建议的方式为 CPU 安装 tensorflow。

编辑:降级到 TensorFlow 1.5 对我来说不是一个解决方案,因为 Unity ML 代理确实需要 1.7.1

0 投票
1 回答
589 浏览

c# - Tensorflowsharp 结果 getvalue() 很慢

我正在使用TensorflowSharp在Android手机上使用神经网络运行评估。我正在使用Unity构建项目。

我正在使用此处要求下列出的 tensorflowsharp 统一插件:https ://github.com/Unity-Technologies/ml-agents/blob/master/docs/Using-TensorFlow-Sharp-in-Unity.md 。

一切正常,但是提取结果非常慢。

我正在运行的网络是一个自动编码器,输出是一个尺寸为 128x128x16 的图像(是的,有很多输出通道)。

评估在约 0.2 秒内完成,这是可以接受的。但是,当我需要使用results[0].GetValue()它提取结果数据时非常慢。

这是我运行神经网络的代码

问题: 我将结果转换为浮点数的最后一行需要大约 1.2 秒。

将结果数据读入浮点数组真的是网络实际评估时间的 5 倍以上吗?

是否有另一种方法来提取结果值?

0 投票
0 回答
361 浏览

c# - Unity ML Agents - 简单的逻辑“和”门示例 - 没有完成任何情节

我正在尝试创建一个非常简单的示例,在其中我使用“和”门值训练代理,即

我知道这是一个非常奇怪的测试项目,但我需要检查我是否可以使用 ML 来评估数据而不需要游戏对象。

我遵循了这个项目中包含的“基本”示例,但我无法让它工作。我在下面发布了我的代码。任何帮助将非常感激。

更新 对不起,我忘了提,我在我的 Mac 上按照统一 ml GitHub 页面上的设置指南安装了 python 东西,所以我只运行“mlagents-learn config/trainer_config.yaml --run-id=firstrun --train "然后统一按播放键开始训练过程。

在终端窗口中,我得到了关于训练过程的反馈,起初一切似乎都正常,因为我得到了一个带有奖励值的打印输出,但是在下一个打印输出上它说“自上次总结以来没有完成任何一集”但我有不知道这意味着什么或问题是什么。

我按照要求在场景中有大脑和学院,因为我遵循了 unity ml 项目中的“基本”示例,但由于某种原因它不起作用,但所有示例都这样做,所以我猜这是我的代码中的东西,而不是我的配置,但我不知道是什么。

0 投票
1 回答
74 浏览

python - 使用外部评估功能在 Keras 中进行训练

首先让我描述一下设置:我们在 Unity 中有一个自治代理,其决策基于感知环境(级别)和一些用于值映射的预定义参数。我们的目标是在 DNN 中预训练代理的参数。所以这个想法基本上是定义一个错误度量来评估代理在 Unity 模拟中的性能(运行关卡,例如测量与最优轨迹的偏差 = 统一的基本事实)。因此,根据 DNN 的输入级别,网络应该训练输出参数,执行模拟并将误差作为误差值(如准确度)传回网络,因此网络可以根据该误差进行训练/表现。

在 Keras 之外的训练期间,有什么方法可以进行评估(与基本事实的比较)?通常,一个人将 X 数据传递给网络,训练东西并将其与基本事实 Y 进行比较。这对于预测很有效,但我不想预测某些东西。我想要的是测量模拟中与基本事实的偏差。我知道有 Unity ML 代理,但据我所知,“大脑”在运行时控制代理,即在每一帧更新它并控制运动。我想要的是执行整个模拟以更新网络的参数/权重。

最好的祝愿。

0 投票
1 回答
400 浏览

unity3d - 为 ml-agent 构建时,代理不会随内部大脑移动

我遇到的问题是,当我将大脑设置为“内部”类型并设置图形模型来构建游戏时,代理不会移动。但是当我在 Unity 中按下 ▶️ 按钮时,代理会移动。

我了解培训方法并且我有图形模型。

我想用 .exe(build) 文件移动代理。

开发环境 ・Windows 10 ・ml-agents v0.5.0 ・Unity 2018.2.18f1 Personal

0 投票
1 回答
362 浏览

c# - Unity - 运行神经网络

我使用 PyTorch 训练了一个模型。在 Unity 中,我使用 aWebCamTexture来显示实时视频。如何将网络摄像头帧输入 PyTorch 模型,然后使用模型的输出在 Unity 中执行操作?

我找到了 Unity ML-agents,但它似乎对这种情况没有帮助。

0 投票
0 回答
1926 浏览

python - unity mlagents-learn 不使用 --load 训练的问题

嗨,我正在尝试做我的第一个统一 ml-agents ai。之前,当我想训练我的 AI 时,我正在写作

mlagents-learn 配置/trainer_config.yaml --run-id=Taxi-1 --train

在终端,但人工智能在 50 000 步后停止了训练。然后,我尝试再次训练它,与另一个

mlagents-learn 配置/trainer_config.yaml --run-id=Taxi-1 --train

然后,我看到如果您希望它不重新开始整个训练并继续训练您以前的模型,则必须将 --load 添加到命令中。然而,当我写

mlagents-learn 配置/trainer_config.yaml --load --run-id=Taxi-1 --train

它只做一步然后停止。这是它在终端中写入的内容:

你知道我怎样才能继续训练超过 50 000 步吗?谢谢您的帮助!不要犹豫,要求任何澄清。