加载模型
构造函数
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();