跳到主要内容

加载模型

构造函数​

Model(string path)​

public Model(string path)

构造即读元信息(Meta.Task / Meta.InputWidth 等),失败抛异常;推理要 Open 之后才可用。

参数:

  • path (string) — 模型文件路径(.darmodel / .onnx 等)

示例:

using var m = new Model("model.darmodel");
Console.WriteLine(m.Meta.Task);
Console.WriteLine(m.Meta.InputWidth);

打开​

Open(string? password = null)​

public AiResult Open(string? password = null)

打开模型:明文 / 加密自动识别,加密给口令。失败读结果里的错误码。

参数:

  • password (string?) — 口令凭据。明文模型不给,加密模型给

示例:

if (m.Open("pwd")) { /* 可推理 */ }

装入类别名​

SetLabels()​

public AiResult SetLabels(IReadOnlyList<string> labels)

传类别名表,下标对应 class_id,随时可调,open 后生效;空列表等同 ClearLabels()。

参数:

  • labels (IReadOnlyList<string>) — 类别名表,元素非空 UTF-8,顺序对应下标。

示例:

m.SetLabels(new[] { "cat", "dog" });

ClearLabels()​

public AiResult ClearLabels()

清空注入的类别名表,回落模型自带表。随时可调,open 后生效,失败读结果里的错误码。

参数: 无。

示例:

m.ClearLabels();

加密模型的密码​

加密模型打开后分这几种:

  • 试用 — 按试用条款使用(有次数或期限)
  • 绑定 — 与当前设备绑定,绑定后可用
  • 已绑定 — 该设备已绑定,直接可用
  • 未通过 — 明确报错不静默,失败读结果里的错误码
var r = m.Open("pwd");
if (r) { /* 可推理 */ }
else Log(r.ErrorCode, r.Message);

取消​

Cancel()​

public AiResult Cancel()

尝试取消正在执行的推理。深层 Provider 推理不可中断,跑完结果被丢弃。幂等,不要当同步停止用。失败读结果里的错误码。

资源释放​

Close()​

public AiResult Close()

Model 实现 IDisposable,Dispose() 等价 Close(),可重复调用,关闭后 License 回 NotOpened。失败不抛异常,失败读结果里的错误码。

参数: 无。

示例:

using var m = new Model("model.onnx");
m.Open();
m.InferFile("a.jpg");

var ai = new Model("model.onnx");
ai.Open();
ai.Close();