端侧AI(OnDeviceAI)使用指导

← 返回组件参考 · 全部使用指导

端侧AI(OnDeviceAI)使用指导

端侧AI推理组件 - 在设备端运行机器学习模型推理。 鸿蒙独有组件,基于 MindSpore Lite / Neural Network Runtime API。

运行前提与搭建步骤

这些案例在包含该组件的鸿蒙 AI 伴侣或 HAP 中运行。Android 侧是供网页编辑器生成积木的声明,不能用安卓伴侣验证鸿蒙系统能力。

  1. 在设计器拖入 OnDeviceAI,保留名称 OnDeviceAI1;拖入案例涉及的按钮、文本输入框以及一个标签 标签1,按代码中的名称重命名。
  2. 根据下面的业务说明准备素材、JSON 或系统目标。案例中的按钮代表分步操作,先等初始化、加载或创建成功,再执行下一步。
  3. 接住完成事件与错误事件,将原始 JSON 或错误显示在标签。先确认原始结果,再编写业务处理。

model.ms 是你准备的兼容模型,不是仓库自带素材。Base64 表示模型要求的输入字节,必须按输入张量的类型和尺寸编码,不能直接传图片文件名;模型加载成功后才点推理。

案例一:加载模型并检查输入

各案例独立使用;组合到同一屏幕时,将同名事件的处理合并到一个事件积木中。

when 按钮_加载.Click() {
  OnDeviceAI1.LoadModel("model.ms")
}
when OnDeviceAI1.ModelLoaded(输入信息JSON) {
  标签1.Text = 输入信息JSON
}
when OnDeviceAI1.Error(错误信息) {
  标签1.Text = 错误信息
}

案例二:运行模型推理

when 按钮_推理.Click() {
  OnDeviceAI1.Predict(文本输入框_输入Base64.Text)
}
when OnDeviceAI1.PredictionComplete(输出JSON) {
  标签1.Text = 输出JSON
}

参数与返回值速查

JSON 参数是文本,不能直接传字典;需要字典时可用 Web 客户端的 JSON 解码积木转换返回文本。完整默认值与类型见组件参考。

方法或事件 参数与用途
导出模型(输出路径)(ExportModel) 输出路径:文本。将当前训练状态的模型导出到指定路径。
获取输入信息(索引)(GetInputInfo) 索引:数字。获取模型指定输入的详细信息,返回JSON格式。
加载模型(模型路径)(LoadModel) 模型路径:文本。从指定路径加载机器学习模型。
预测(输入Base64)(Predict) 输入Base64:文本。使用加载的模型执行推理,输入为Base64编码的数据,返回JSON格式的结果。
调整输入尺寸(索引,宽度,高度)(ResizeInput) 索引:数字, 宽度:数字, 高度:数字。调整模型指定输入的张量尺寸。
执行训练步(输入Base64,目标Base64)(RunTrainingStep) 输入Base64:文本, 目标Base64:文本。使用加载的模型执行一步训练。
出错时(错误信息)(Error) 错误信息:文本。发生错误时触发,返回错误信息。
模型导出时(输出路径)(ModelExported) 输出路径:文本。模型导出完成时触发,返回导出路径。
模型加载时(输入信息JSON)(ModelLoaded) 输入信息JSON:文本。模型加载完成时触发,返回模型输入信息。
预测完成时(输出JSON)(PredictionComplete) 输出JSON:文本。模型推理完成时触发,返回推理结果。
训练步完成时(损失值)(TrainingStepComplete) 损失值:数字。一步训练完成时触发,返回当前损失值。

常见问题与验收

现象 检查与预期
安卓运行没有结果 切换到鸿蒙伴侣或 HAP;Android 的声明不会执行该鸿蒙系统能力。
方法已调用但界面没变化 生成 JSON 的方法只是构建数据;按业务流程交给渲染、启动或同步入口,不能将数据生成当成系统操作完成。
初始化、权限或设备失败 记录错误事件,确认系统服务、授权、目标应用或设备可用;只在成功事件后继续下一步。
JSON 解析失败 使用上一组件的原始输出,检查引号和字段类型;空对象用于默认模板演示,不能代替真实目标信息。
两个案例验收 每个按钮单独操作一次,核对对应返回或事件;输入错误目标或取消操作时查看失败事件,不应显示成功提示。
文档反馈