【发布时间】:2022-07-12 00:58:00
【问题描述】:
问题
我正在尝试使用 Unity Machine Learning Agents ,但在设置过程中遇到了问题。当我尝试将资产从 Unity's ml-agents git 导入 Unity 时,我在 Unity 中收到许多警告和错误。出于上下文的目的,我刚开始学习 Unity,所以我不知道这些错误是由于 ml-agents 包还是我这边的用户错误导致的。
错误和警告
使用 Unity 的 ml-agents git 中的资产创建第一个测试场景的说明建议在 Unity 中创建一个新的 3D 项目,然后将文件夹
projects/assets/ml-agents
拖放到项目的资产中。此时,Unity 在终端中显示了许多错误和警告。它仍然有资产中的示例,但场景中的每个元素都充满了警告。
根据 2020 年的这些教程,通过将资产拖放到 Unity
[1]
[2]
,我随后
在我的情况下,大多数警告似乎来自
PushBlockWithInput
、
PushblockActions
和
PushBlockWithInputPlayerController
,缺少
UnityEngine.InputSystem
和
Unity.MLAgents.Extensions.Input
,并带有注释“(您是否缺少 using 指令或程序集引用? )”。这个;但是,在上述教程中没有发生。
虽然他们犯了大部分错误,但他们并不完全是关于程序集引用。其他错误,可能与程序集引用有关,也可能不是,是
- 错误 CS0115:“Match3Board.GetCurrentBoardSize()”:找不到合适的方法来覆盖
- 错误 CS0535:“SensorBase”未实现接口成员“ISensor.GetCompressionType()”
我尝试过的事情
Python
我遵循了 Unity 的 ml-agents git 中的
instructions
,并成功地通过 pip 安装了带有 Anaconda 的 Python 3.7 环境、带有 Cuda 的 PyTorch 和 Unity 的 ml-agents python 包。在尝试验证 ml-agents python 包是否与
mlagents-learn --help
一起使用时,我首先遇到了一个异常,但可以通过按照
suggestion from a forum
更新
protobuf==3.20.1
来解决这个问题(只是提到这一点以防相关)。
团结
我从 Unity 的包管理器下载了 C# 包并尝试了多个版本 (
1.0.8 (Verified), 1.9.1 (Preview), 2.0.1, and 2.1.0 (Preview) -- lastest
)。之后,我可以从 Inspector 的“添加组件”菜单中选择 ML-Agents。
我还尝试使用
ml-agent package 1.9.1 (Preview)
和正确的梭子鱼版本以及 Unity 的 ml-agents git 的 release 19 分支创建一个新的 Unity 项目,但没有成功(现在是 53 个警告和 70 个错误)。现在也找不到执行器,这似乎是一个更常见的问题。
VS 代码
我使用的是 VS Code,而不是推荐的 here 中的 VS。我下载了 .Net 6.0.301 版并检查了它是否安装了“dotnet --info”。在 VS Code 的扩展管理器中,我安装了扩展 C# 、 Code Runner 、 Unity Tools 、 Debugger for Unity 。
Git 存储库
我还从 Unity 的 ml-agents git 的主分支切换到
release 19 branch
并尝试了其他版本的梭子鱼包,例如
Version 3.0.0
,它似乎删除了警告,但没有删除错误,而是给出了这些通知:
但是,资产设置中仍会显示警告:
课程:ML-Agents:蜂鸟
我成功完成了 ML-Agents: Hummingbirds 。本课程不使用 ML-agents Git 存储库中的任何资产。虽然,本课程的资产以相同的方式下载和添加,没有问题。这让我假设 ML-agents 的常规设置正在运行,但我特别无法导入资产。
我的设置
- 我正在使用装有 Windows 11 的机器
-
Unity Version is 2020.3.32f1 Personal <DX11>
-
Unity
ml-agent package
已与1.0.8 (Verified), 1.9.1 (Preview), 2.0.1, and 2.0.2 (Preview)
一起尝试过 -
Unity
ML Agents Extensions
包 0.6.1(预览版) -
Python 版本是,根据
instructions
,
3.7 with an Anaconda virtual environment
-
Unity 的 ml-agents git 是
main
,以及release_19_branch
-
C# 编辑器将是
Visual Studio Code 1.67.2
- DotNet 版本:6.0.301
到目前为止我发现的事情
这个问题似乎有些普遍,几年来我发现了类似问题的几种变体,一些更具体到 Actuators 缺失,一些更多 general 。有些人也发布了关于 problems with the InputSystem 的帖子,但似乎不同的解决方案和对解决方案的混合反应。
关于 Unity、ml-agents 包和 Visual Studio Code 的版本更改有各种建议。其他解决方案包括在 Visual Studio 或 Unity 中下载其他包。有些人建议在克隆的 git 存储库中编辑脚本。尽管这些线程大部分来自过去 2 年。我花了两天时间尝试设置和修复这个问题,我正要放弃 ml-agents 包。令人遗憾的是,看似很棒的资源的安装过程似乎如此不可行。对于如何设置此软件包的其他资源,我将不胜感激。
-
有时我单位的输入系统是这样的。有时电影机也会这样做。我重新导入所有然后它工作。不幸的是,我不知道原因。
-
必须尝试在 Unity Preferences > External Tools 中重新生成项目文件?
-
@DavidSdot 是的,我尝试了启用“生成所有 .csproj 文件”的“重置参数”,我也尝试重复创建一个新项目,不幸的是结果相同。