跳到主要内容

Session

一份已验票 / 已解密的模型 + 一个已选定的运行时 Provider。全部推理唯一入口;GUI、PLC、客户应用同一路径,无第二套。

一模型一实例:一个 Session = 一份已加载模型 + 一个 Provider。多模型或多份同模型 = 多会话,API 完全相同。本绑定没有「模型组 / 全局引擎」。

打开时按 PayloadKind × 硬件 × prefer_provider 选 Provider;对应包未装则内部调一次 runtime.ensure(无进度回调,可能阻塞下载)。指名但不可用(无硬件 / 驱动过旧 / 平台不支持)= fail-closed,绝不静默降级。

Windows 无 RKNN

Windows 收到 rknn 载荷抛 UnsupportedPayloadErroredge-rknn 只在 linux-arm64。Windows 上指名它抛 UnsupportedPlatformError。禁止改 Windows ReservedCpuSets,禁止动 PLC 隔离核。

Paddle 是运行时载荷(payload_kind=paddle):明文 open_plain 可接 .pdmodel(同目录须有 .pdiparams)或含二者的目录。.pt / .pth 仍拒 → UnsupportedPayloadError

本绑定没有 open_plain_exopen_ex 当前翻译到 open,不调 darra_session_open_exSessionOptions 只有 key_path / password / prefer_provider

功能概览

类别属性类型访问说明
打开Session.openSession类方法打开已签发容器 .darmodel(DARM1)
Session.open_plainSession类方法打开明文模型(.onnx / .pdmodel)。与 open 同一推理路径,只跳过容器解码与验票
Session.open_exSession类方法可扩展入口。当前翻译到 open
元信息meta()dict方法会话元信息 JSON 对象(有缓存)
taskstr | None只读detect / classify / segment / pose / ocr / anomaly。缺席为 None
labelslist[str]只读类别标签。缺席或非数组则为空列表
input_widthint只读模型输入宽。未知为 0
input_heightint只读模型输入高。未知为 0
channelsint只读模型输入通道数。未知为 0
layoutstr | None只读张量布局。先读 input.layout,再读顶层 layout
payload_kindstr | None只读onnx / trt-engine / openvino / rknn / paddle
provider_idstr | None只读实际选中的 Provider ID(不是 prefer 入参)
encryptedbool只读是否容器会话。明文模型为 False
推理infer_imagedict方法对一张图(一帧)跑推理。连续帧循环调用
生命周期closeNone方法关闭会话并释放全部资源。重复 close / 未打开均为 no-op
__enter__ / __exit__Session方法上下文管理器;退出 with 块时自动 close()

只读属性全部从 meta() 派生。头里缺的字段为 None / 0 / 空列表,不编默认 640/80/17。标准字段表见 元数据

提示

打开与生命周期见 打开。元信息与只读属性见 属性。推理见 推理