问题标签 [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.
python - Unity/ml-agents,用正确的参数调用多个大脑
玩这个。我可以成功训练 1 个大脑,但是当我想训练 2 个大脑时出现以下错误
在这里我找到了这部分,与我的问题有关:
步骤:env.step(动作,内存=无,值=无)
使用操作向环境发送步进信号。请注意,如果环境中有多个大脑,则必须提供从大脑名称到动作的字典。
如果每个大脑有多个代理,动作可以是一维数组或二维数组。
memory 是一个可选输入,可用于发送每个代理的浮点列表,以便在下一步检索。
value 是一个可选输入,用于在 AgentMonitor.cs 组件附加到代理时为每个代理发送一个要显示的浮点数。返回将大脑名称映射到 BrainInfo 对象的字典。
但我不确定如何解释它。有人可以建议我应该如何构建它,以便我可以在我的环境中使用 2 个大脑吗?
谢谢!
deep-learning - 为什么要限制连续动作?
在深度强化学习中,使用连续动作空间,为什么在代理执行之前钳制动作似乎是一种常见的做法?
例子:
OpenAI Gym 山地车 https://github.com/openai/gym/blob/master/gym/envs/classic_control/continuous_mountain_car.py#L57
这样做不会丢失信息吗?就像模型为速度(移动)输出 +10,然后将其限制为 +1,动作本身的行为相当离散(仅考虑其执行)。对于细粒度的运动,将输出乘以 0.1 之类的东西不是更有意义吗?
image - 正确获取 numpy 数组的尺寸以绘制转换后的灰度图像
作为 Unity 的 ML 代理的一部分,输入到强化学习代理的图像可以转换为灰度,如下所示:
由于我对 Python 尤其是 numpy 不够熟悉,我怎样才能获得正确的尺寸来绘制重新整形的 numpy 数组?据我了解,形状基于图像的宽度、高度和通道数。所以整形后只有一个通道来确定灰度值。我只是还没有找到一种方法来绘制它。
这是Unity ML Agents 存储库中提到的代码的链接。
这就是我想要绘制它的方式:
python - 没有 GPU 的 Unity ML-Agents 的 Tensorflow 和 Cuda
我正在尝试使用 tensorflow 与统一 ml-agents 一起使用。我按照“创建conda环境”的设置说明进行操作。我成功地运行了 conda create 命令,激活了 tensorflow,安装了 tensorflow,最后启动了 python。
但是当我运行这个命令“import tensorflow as tf”时,由于我的机器没有 GPU,我得到了一个错误。我正在假设使用 CUDA_VISIBLE_DEVICES 环境变量将解决此问题并强制使用 CPU,但我不确定如何输入变量。
谁能告诉我这应该如何出现在环境变量界面中?或者有没有人对如何正确设置有任何其他想法?
提前致谢
unity3d - ValueError:列出参数“值”到“ConcatV2”操作,长度为 0 小于最小长度 2 3Dball
执行“3Dball”会在 Unity ml-agent 中产生一些错误
当我执行 PPO.ipynb 时,直到“加载环境”才出现错误。
执行“训练代理”有一些错误
ValueError:列出参数“值”到“ConcatV2”操作,长度 0 比最小长度 2 短。
这是我执行的代码
https://github.com/Unity-Technologies/ml-agents/blob/master/python/PPO.ipynb
unity3d - Unity ML Agent 无法很好地学习默认示例
我正在尝试了解 Unity 机器学习 Beta。
我正在尝试在所有给定的示例场景上训练代理,3Dball 工作正常,但区域甚至基本示例都没有正确学习。问题可能出在超参数中,但我不确定。我的超参数是:
这意味着奖励不会增加超过 0.2(即使它有 0.9+ 的潜力)如果有人对这些示例进行过培训,您能告诉我您使用了哪些超参数吗?
提前致谢
python - 限制 Unity ML-Agents/Tensorflow 中的操作值
我将 Unity 与 ML-Agents 及其 PPO 实现一起使用。
我有一个动作来训练我的神经网络,它的输入为 -1 到 1。当我记录动作时,我可以看到网络总是尝试 550、630、-530 等值。我怎样才能将这些限制为只使用 -1 和 1 之间的值?
我试图在 Unity 中寻找它。找不到任何选项。现在我正在尝试修改 PPO 算法,但我找不到任何可以限制我的值的东西。
我的日志是这样工作的:我的代理有 AgentStep 方法:
Logger 是我编写的一个类,用于创建一个 csv 文件。此输出看起来不像:
提前致谢。
python - 带有 Tensorflow 的 Windows 10 上的 ML-Agent 的 Unity3D 机器学习设置
在过去的几个小时里,我一直在尝试启动并运行 Unity 3D的 ML-Agents 机器学习设置,但没有成功。
首先,我观看了此视频,该视频介绍了此GitHub存储库中也概述的初始安装。
接下来,我继续观看视频系列的第 2 部分(此处),但是问题从 4:48 开始,我意识到本教程使用的是 v 0.2,而我使用的是 v 0.3。
V 0.3 取消PPO.ipynb
了视频中显示的文件。一切都是通过learn.py
文件完成的。
然后我决定尝试遵循官方的 Unity 安装指南:
并参加了我无法解决的 PPO 部分的培训。
问题出现在这里:文档指出:
总而言之,转到您的命令行,输入 ml-agents 目录并输入:
注意:如果您使用 Anaconda,请不要忘记先激活 ml-agents 环境。
我试图运行:
python learn.py ball --run-id=ballBalance --train
但我收到了一些警告,如下所示:
文件“learn.py”,第 9 行,来自 unitytrainers.trainer_controller 导入 TrainerController 文件“C:\Users****\Downloads\ml-agents-master\python\unitytrainers__init__.py”,第 1 行,来自 .buffer进口 *
很长一段时间以来,我一直在尝试解决此错误消息。似乎learn.py
确实找到了该文件,但不知何故没有正确解释?
的前 9 行learn.py
:
任何有关我如何解决此问题的指导将不胜感激。很乐意在需要时提供更多信息。上面提到的步骤应该复制我遇到的问题。
python - Tensorflow (1.4.0) 中的脚本需要导入“reader.py”(也位于 tensorflow 中)但失败。不知道该怎么做
前言:我正在使用 Python 3.6.5、Tensorflow 1.4.0 和 Unity Ml-Agents v0.3
我正在使用 tensorflow(1.4.0) 和 Unity Ml-Agents git 存储库。在 tensorflow 中有一个名为 saved_model_utils.py 的文件,它需要从 tensorflow 包中的不同文件目录导入 reader.py。我的问题是,当我运行训练程序时,它在 saved_model_utils.py 中的导入行失败。我尝试了多种不同的方法来指定导入文件的直接路径,但没有一个能满足这个问题。我认为有一些我不知道的东西使这变得困难,因为 tensorflow 将错误的脚本放在那里的包中是没有意义的。任何帮助表示赞赏!
这是 saved_model_utils.py 的图片: save_model_utils.py 与 reader.py 在项目窗口中突出显示
这是我运行脚本时终端和错误的图片: 终端错误