找不到类型或命名空间 'NModel'

The type or namespace 'NModel' could not be found

我正在尝试将我训练的模型嵌入到我的 c# unity 脚本中。 通过做这样的事情

using UnityEngine;
using UnityEngine.UI;
using MLAgents;

public class loadImage : MonoBehaviour {

    public NNModel modelSource;

    var model = ModelLoader.Load(modelSource);

这是 these barracuda docs 在 unity 的 github 上规定的。但是,我得到错误

The type or namespace 'NModel' could not be found. Are you missing a using directive or assembly reference?

我真的不知道我怎么能把它添加到 c# 和 Unity 编程中,所以这个错误的原因可能是相当基本的。我是不是忘记了什么?

谢谢!

你可以看到例如在 BarracudaModelParamLoader 中,除了 System 之外唯一的命名空间是 Barracula 并且它使用 NModel ;)

所以 NModel 似乎是 Barracula 命名空间的一部分。

只需添加

using Barracuda;

在脚本的顶部。

还要确保 Baracccula .dll 文件已导入,并且 compatible 已导入目标平台。


总的来说:我强烈建议使用适当的 IDE,例如用于编码的 VisualStudio。它通常可以自动为缺少的命名空间建议所需的修复。

虽然我来晚了,以防万一有人还在为这个问题苦苦挣扎,只需添加:

using Unity.Barracuda;

而不是

using Barracuda;

解决了我的问题