Qualcomm® AI Hub 在 Radxa Dragon Q6A 上的学习与实践指南

azouyana 2026-11-11 14:36:01

记录时间:2026-11-11
实测环境:Radxa Dragon Q6A(QCS6490 / Ubuntu 24.04 aarch64)+ QAIRT SDK 2.42.0.251225
官方文档:https://workbench.aihub.qualcomm.com/docs/hub/install.html


一、AI Hub 是什么

Qualcomm® AI Hub(Workbench)是高通官方的云端 AI 模型优化平台,核心是两件事:

  1. 模型库(AI Hub Models):几百个已适配骁龙/龙翼平台的预训练模型,直接从 HuggingFace 或 GitHub 拿;
  2. 云端真机:把模型提交到云端的真实设备上跑 编译 / 推理 / 性能分析 / 量化,然后下载优化好的产物。
   你的 PC(Python 客户端)                    Qualcomm 云端
┌──────────────────────┐              ┌──────────────────────────┐
│ 导出模型 (torch/onnx) │  ── 上传 ──▶ │  编译 job(真机 NPU/GPU)  │
│                      │              │  推理 job(真机跑一遍)    │
│ 下载优化产物          │  ◀─ 下载 ──  │  量化 job                 │
└──────────────────────┘              └──────────────────────────┘
          │
          └────▶ 部署到自己的板子(Dragon Q6A / QCS6490)跑

和本地 QAIRT SDK 的分工

AI Hub(云端)本地 QAIRT SDK
模型转换✅ 云端一键 submit_compile_job需自己写 qairt-converter + config_backend.json
量化✅ 云端 quantize job(自带校准流程)需自己准备校准集 + qairt-quantizer
性能数据✅ 自动给推理时延/内存/NPU 占比需自己写 benchmark
目标设备云端真机(看设备列表)你手上的板子
网络要求必须联网 + 账号全离线
产出物.tflite / .onnx / QNN context binary同样格式,可直接复用

简单说:AI Hub 负责「把模型变成能在 NPU 上跑的最优产物」,QAIRT 负责「在你的板子上把产物跑起来」。两者是上下游关系,不冲突。


二、安装(x86 PC 上,推荐)

2.1 环境要求

  • **Python 3.10+**(官方推荐 conda 建 3.10 环境)
  • Windows x86 / Windows on ARM / macOS / Linux
  • 需要能访问 workbench.aihub.qualcomm.com
conda create python=3.10 -n qai_hub -y
conda activate qai_hub

2.2 安装客户端

pip3 install qai-hub
# 如果要用 PyTorch 模型(torch.export 导出),装带 torch 的版本:
pip3 install "qai-hub[torch]"

2.3 注册并拿 API Token

  1. 打开 https://workbench.aihub.qualcomm.com/,用 Qualcomm ID 登录(没有就注册一个);
  2. 右上角 Account → Settings → API Token;
  3. 复制那串 token。
qai-hub configure --api_token 你的TOKEN

配置会写到 ~/.qai_hub/client.ini,只需配一次。

2.4 验证

qai-hub list-devices

能列出一堆设备名就说明通了。

临时环境(如 SageMaker)不想落盘时,可以每次代码里传:

import qai_hub as hub
client = hub.Client(hub.ClientConfig(api_token="你的TOKEN"))

三、板端(Dragon Q6A / aarch64)能不能装客户端?

我在这块板子上实测过:

python3 -m pip download --no-deps -d /tmp/qaihubdl qai-hub
# qai_hub-0.58.0-py3-none-any.whl   ← 纯 Python 包,架构无关

python3 -m pip install --break-system-packages --target ~/QAIRT/qaihub qai-hub
PYTHONPATH=~/QAIRT/qaihub ~/QAIRT/qaihub/bin/qai-hub --help

🕳 坑:装完提示 qai-hub: command not found

--target 安装不会写 PATH,CLI 只在 ~/QAIRT/qaihub/bin/qai-hub。直接用会报:

radxa@radxa-dragon-q6a:~/QAIRT$ qai-hub list-devices
bash: qai-hub: command not found

解决办法:加一个包装器到 ~/.local/bin(隔离 PYTHONPATH,不污染系统 numpy):

mkdir -p ~/.local/bin
cat > ~/.local/bin/qai-hub <<'EOF'
#!/bin/sh
export PYTHONPATH="$HOME/QAIRT/qaihub${PYTHONPATH:+:$PYTHONPATH}"
exec "$HOME/QAIRT/qaihub/bin/qai-hub" "$@"
EOF
chmod +x ~/.local/bin/qai-hub

# 让 ~/.local/bin 进 PATH(新终端生效)
grep -q 'HOME/.local/bin' ~/.bashrc || \
  echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

验证:

$ which qai-hub
/home/radxa/.local/bin/qai-hub

用 Python API 时(import qai_hub)需要显式带 PYTHONPATH:

PYTHONPATH=~/QAIRT/qaihub python3 your_script.py

不建议把 ~/QAIRT/qaihub 写进全局 PYTHONPATH,因为该目录里带了一份 numpy 2.x,会覆盖系统 numpy。

结论:板端能装、能跑。包装器配好后 CLI 输出正常:

usage: qai-hub [-h] [--profile PROFILE] [--verbose]
               {configure,list-devices,list-frameworks,list-projects,upload-model,
                submit-compile-and-profile-jobs,submit-profile-job,submit-compile-job,
                submit-link-job,submit-inference-job}

没配 token 时报错很明确:

FileNotFoundError: /home/radxa/.qai_hub/client.ini not found.
Please request access at https://aihub.qualcomm.com/.

⚠️ 但不建议在板子上做模型导出/编译:torch、onnxruntime 这类依赖在 aarch64 上安装体积大、坑多。
最佳实践:PC 上跑客户端提交作业 → 下载产物 → scp 到板子跑推理。


四、QCS6490 该选哪个设备?

AI Hub 的设备列表里已经包含 QCS6490 平台(实测 qai-hub list-devices 返回 78 台设备):

设备名(Workbench)OS芯片标签说明
Dragonwing RB3 Gen 2 Vision KitQc_Linux 1.6qualcomm-qcs6490 / qcs6490✅ 与 Dragon Q6A 同 SoC(HTP v68)
QCS8550 (Proxy)Android 12qualcomm-qcs8550-proxy架构 v73,不建议拿来跑
Dragonwing IQ-9075 EVKQc_Linux 1.9qualcomm-qcs9075v73
Arduino VENTUNO QUbuntu 24.04qualcomm-qcs8275系统与我们最接近,但 SoC 不同

原始行(含 CLI 调用方式):

|   Dragonwing RB3 Gen 2 Vision Kit    | Qc_Linux 1.6 | Qualcomm | Iot |
  qualcomm-qcs6490, qcs6490, qualcomm-dragonwing-qcs6490 |
  --device "Dragonwing RB3 Gen 2 Vision Kit" --device-os 1.6

在代码里这样选:

device = hub.Device("Dragonwing RB3 Gen 2 Vision Kit")

如果 list-devices 里名字对不上,可以用属性过滤:

devices = client.get_devices(attributes="chipset:qualcomm-qcs6490")

五、跑通第一个作业(MobileNetV2)

这是官方 walkthrough 的精简版,5 分钟跑完编译 + 真机推理。

import torch
from torchvision.models import MobileNet_V2_Weights, mobilenet_v2
import qai_hub as hub

# ---------- 1. 准备模型 ----------
torch_model = mobilenet_v2(weights=MobileNet_V2_Weights.IMAGENET1K_V1).eval()
input_shape = (1, 3, 224, 224)
example_input = torch.rand(input_shape)
with torch.no_grad():
    exported = torch.export.export(torch_model, (example_input,))

# ---------- 2. 选设备 + 编译 ----------
client = hub.Client()
device = hub.Device("Dragonwing RB3 Gen 2 Vision Kit")

compile_job = client.submit_compile_job(
    model=exported,
    device=device,
    input_specs=dict(image=input_shape),
    options="--target_runtime tflite",     # 也可 onnx / qnn_context_binary
)
target_model = compile_job.get_target_model()

# ---------- 3. 真机推理 ----------
import numpy as np, requests
from PIL import Image

url = "https://qaihub-public-assets.s3.us-west-2.amazonaws.com/apidoc/input_image1.jpg"
r = requests.get(url, stream=True); r.raw.decode_content = True
img = Image.open(r.raw).resize((224, 224))
input_array = np.expand_dims(
    np.transpose(np.array(img, dtype=np.float32) / 255.0, (2, 0, 1)), axis=0)

inference_job = client.submit_inference_job(
    model=target_model,
    device=device,
    inputs=dict(image=[input_array]),
)
output = inference_job.download_output_data()

# ---------- 4. 下载最优产物 ----------
target_model.download("mobilenet_v2.tflite")

跑完在 https://workbench.aihub.qualcomm.com/recent-jobs 能看到每个 job 的链路:
编译时间、首次加载时间、推理时延、峰值内存、每层耗时、是否跑在 NPU 上。

5.1 板端实测版(不用装 torch)

板子是 aarch64,装 torch 要几百 MB 且容易和 numpy 版本打架。
但 submit_compile_job 本来就支持直接传 ONNX 文件,效果等价,所以板端走这条:

# 1) 拿官方公开的 MobileNetV2 ONNX(14 MB)
curl -L -o /tmp/mbv2.onnx \
  https://qaihub-public-assets.s3.us-west-2.amazonaws.com/apidoc/mobilenet_v2.onnx

# 2) 运行(脚本见 ~/QAIRT/demo/aihub_mobilenetv2.py)
PYTHONPATH=~/QAIRT/qaihub:~/QAIRT/pylibs python3 ~/QAIRT/demo/aihub_mobilenetv2.py

实测记录(2026-11-11,Dragon Q6A 上执行)

步骤作业 ID结果
编译(tflite)jpr7vj1vg✅ SUCCESS,下载 13.97 MB
真机推理(第 1 次)jpend347p❌ An internal error occurred.(设备侧内部错误,无日志)
真机推理(重试)jg9q0nkqp✅ SUCCESS

💡 教训:An internal error occurred. 属于云端设备侧偶发故障(尤其在 Qc_Linux 设备上),
直接重试即可,不必怀疑模型。

推理结果(输入是 AI Hub 官方的咖啡杯样图):

① 测试输入图

AI Hub 官方测试图(拿铁咖啡杯)

② 云端真机 Top-5 结果

MobileNetV2 云端真机推理结果

Top-5 云端真机预测:
  #968  cup             37.14%
  #504  coffee mug      17.82%
  #967  espresso        10.56%
  #773  saltshaker       3.35%
  #647  measuring cup    3.35%

Top-1 正确,Top-3 全部是「杯子/咖啡」类,说明模型在云端真机上的推理链路是通的。
产物落在 ~/QAIRT/aihub_work/mobilenet_v2.tflite。


六、四类作业怎么选

作业API作用什么时候用
Compilesubmit_compile_job把模型编译成目标设备的运行时格式必须有,是后面所有作业的前提
Inferencesubmit_inference_job在真机上跑一次推理,拿到输出 + 性能数据验证精度、看时延/内存
Quantizesubmit_quantize_jobINT8/INT16/INT4 量化(需编译成 ONNX 作为输入)模型太大、要上 NPU
Linksubmit_link_job把多个编译产物链接成一个多模型/多图部署

量化作业实测(2026-11-11)

# 1) 先编译成 ONNX(量化作业只接受 compiled ONNX)
cj = client.submit_compile_job(model="mbv2.onnx", device=device,
                               input_specs=dict(image=(1, 3, 224, 224)),
                               options="--target_runtime onnx")
unquant = cj.get_target_model()

# 2) 准备校准数据:dict{输入名: [np.ndarray, ...]},建议 500~1000 张,本示例用 100 张
qj = client.submit_quantize_job(
    model=unquant,
    calibration_data={"image": samples},          # 每张 shape=(1,3,224,224) float32
    weights_dtype=hub.QuantizeDtype.INT8,          # 可选 INT8 / INT16 / INT4
    activations_dtype=hub.QuantizeDtype.INT8,
)
quant = qj.get_target_model()

实测:100 张校准图(imagenette)、数据集 18.3 MB,作业 j5wrw6ljp SUCCESS。

校准数据的预处理必须和训练时一致(本例:resize 224 → /255 → (x-mean)/std,
mean=[0.485,0.456,0.406]、std=[0.229,0.224,0.225],CHW 布局)。

--target_runtime 取值(实测确认,只有这 4 个合法值):

值产出特点
(不填).tflite默认,走 TFLite + QNN delegate
onnx.onnxONNX Runtime + QNN EP,适合 Windows;量化作业的输入
qnn_dlc.dlc与硬件无关
precompiled_qnn_onnx.onnx + .binONNX 包装的 QNN context binary

⚠️ 没有 qnn_context_binary 这个取值。传了会直接报:

Unsupported target runtime: qnn_context_binary.
Expecting one of 'onnx', 'precompiled_qnn_onnx', 'qnn_dlc', 'tflite'

context binary 要用 submit_compile_and_link_jobs() 生成(见 7.1)。


七、把 AI Hub 产物部署到 Dragon Q6A

7.1 拿到产物的三种情况

① QNN context binary(最推荐,与板端 qnn-net-run 直接对接)

注意三点(均为实测结论):

  1. 只能用 submit_compile_and_link_jobs() 生成,不是 --target_runtime 取值;
  2. 返回值是 **(编译作业列表, link 作业)**,不是单个 job;
  3. 模型必须先量化,且 I/O 也要量化(--quantize_io),否则 NPU 不接受 float 输入。
# 前提:已有量化模型 quantized_model(见第六章 Quantize)
compile_jobs, link_job = client.submit_compile_and_link_jobs(
    models=quantized_model,
    device=device,
    compile_options="--quantize_io",   # 关键:I/O 一起量化
)
link_job.wait()
link_job.get_target_model().download("model.bin")

未量化 / 未加 --quantize_io 时会报(实测):

Tensor 'image' has a floating-point type which is not supported by the targeted device.
Please quantize the model including its I/O and try again.

⚠️ 拿到 .bin 后能直接在板子上跑吗?取决于版本:
AI Hub 云端产物是 QAIRT 2.45+ 生成的,板端 2.42 会报 err 5000,详见 7.3 节。

板端直接跑(和我上一篇里的命令一模一样):

source ~/QAIRT/qairt_env.sh
qnn-net-run \
  --backend $QAIRT_SDK_ROOT/lib/aarch64-oe-linux-gcc11.2/libQnnHtp.so \
  --retrieve_context ./model.bin \
  --input_list ./test_list.txt \
  --output_dir ./output

② TFLite 模型

用 SDK 里的 QNN TFLite Delegate(qtld-net-run,aarch64 版已随 SDK 提供):

# 板端
qtld-net-run \
  --model ./model.tflite \
  --input ./test_list.txt \
  --output ./out \
  --backend htp \
  --library_path $QAIRT_SDK_ROOT/lib/aarch64-oe-linux-gcc11.2/libQnnHtp.so \
  --skel_library_dir $QAIRT_SDK_ROOT/lib/hexagon-v68/unsigned

常用调优开关:--htp_precision 0(量化)/1(FP16)、--htp_performance_mode 2(Burst 模式,性能最高)。

实测踩坑(2026-11-11)

现象原因解决
Cannot Open QNN library ...aarch64-oe-linux-gcc11.2, with error: (null) / Is a directory--library_path 传了目录必须传具体 .so 文件:.../libQnnHtp.so
Error in qtld-net-run function at DumpOutputTensors:1145--output 目录不存在(工具不会自动建)先 mkdir -p out 再跑

本机实测:float 版 vs INT8 版(关键区别)

同样一条命令,只是模型不同,执行后端完全不同:

模型大小doesn't support FP16 报错实际执行
mobilenet_v2.tflite(float,未量化)13.97 MB69 处❌ 全部回退 CPU
mbv2_int8.tflite(INT8 量化)4.02 MB0✅ 完整跑在 NPU (HTP v68)

日志里的关键证据:

# float 版
ERROR: [Qnn] <E> The SocModel doesn't support FP16
WARNING: [Qnn Delegate] Qnn Backend op validation failed with error: 3110
# INT8 版:以上报错 0 条

本机推理结果(同一张咖啡杯图,预处理:/255 → (x-mean)/std):

执行位置Top-1Top-2Top-3
云端真机(AI Hub,float tflite,输入仅 /255)cup 37.14%coffee mug 17.82%espresso 10.56%
本机 NPU(INT8 tflite)espresso 89.91%coffee mug 4.93%cup 4.93%
本机 CPU(float tflite)espresso 89.14%cup 6.09%coffee mug 3.36%

① 本机 NPU(INT8)实际输出

板端本机 NPU INT8 推理结果

② 三种执行方式对比

云端 vs 本机 NPU vs 本机 CPU 对比

③ 完整 Top-5(从板端 output_0.raw 解析)

#967  espresso        89.91%
#504  coffee mug       4.93%
#968  cup              4.93%
#969  eggnog           0.05%
#541  drum             0.03%

💡 两个重要发现:

  1. 本机 NPU 与 CPU 结果几乎一致(89.91% vs 89.14%),说明 INT8 量化损失很小,且 NPU 路径正确;
  2. 云端结果与本地差异较大,原因是预处理不同:官方 walkthrough 只做了 /255,
    而本例按 MobileNetV2 的标准预处理做了 (x-mean)/std。预处理不一致,结果就会偏。

③ ONNX 模型

用 ONNX Runtime + QNN Execution Provider(需自行编译 aarch64 版 onnxruntime,或用 QAIRT 自带的 lib/python/qti/aisw/core)。

7.2 精度对齐要点

AI Hub 页面会给 REFERENCE METRIC / ON-DEVICE METRIC 两个数字(如 ResNet50:75.7% / 75.6%)。
自己部署时要保证:

  • 输入预处理与 AI Hub 一致(归一化、mean/std、通道顺序、resize 方式);
  • 输出后处理一致(是否含 softmax);
  • 量化精度(w8a8 / w8a16 / fp16)与下载的产物对应。

7.3 ⚠️ 重要:云端产物与板端 SDK 的版本兼容性

实测结论:AI Hub 云端目前只有 QAIRT 2.45 / 2.50 / 2.51,而 Radxa 官方文档要求板端装 2.42.0.251225 —— 两者不兼容。

qai-hub list-frameworks
+-----------+-------------+-------------+---------------------+
| Framework | API Version |   API Tags  |     Full Version    |
+-----------+-------------+-------------+---------------------+
|   QAIRT   |     2.45    |      []     | 2.45.0.260326154327 |
|   QAIRT   |     2.50    | ['default'] | 2.50.0.260828221209 |
|   QAIRT   |     2.51    |  ['latest'] | 2.51.0.260929181845 |
+-----------+-------------+-------------+---------------------+

板端(SDK 2.42)加载实测结果:

产物结果
.dlc(云端 2.50 生成)❌ Failed to create dlc handle with code 1002
context binary .bin(云端 2.50 生成)❌ Fail to get context blob with err 5000 / 0x1388
.tflite✅ 可用(不绑定 QAIRT 版本,用 qtld-net-run 跑);但必须用 INT8 量化版才能落到 NPU

❌ 所以「云端编 DLC → 板端生成 context binary」这条思路在本环境不可行(本指南旧版写过,已订正)。
DLC / context binary 只保证「旧产物 → 新 SDK」前向兼容,反向不行。

可以用 --qairt_version 显式指定云端版本(实测有效):

options="--target_runtime qnn_dlc --qairt_version 2.45"
argument --qairt_version: QAIRT SDK version 2.42.0 is not valid.
To find available versions, use the get_frameworks API...

但最低只有 2.45,对齐不到 2.42。

7.4 三条可行路线

方案做法说明
A(推荐)板端 SDK 升到 ≥ 2.45,与云端 --qairt_version 对齐需要 Qualcomm 账号下载权限;注意与 Radxa 系统镜像的兼容性
B(已验证可用)板端用 INT8 .tflite + qtld-net-run不需要升级 SDK;实测 0 报错、完整跑在 NPU
C继续用 Radxa 的 v68 预编译模型见《QAIRT实战_ResNet50_NPU推理》

⚠️ softwarecenter.qualcomm.com 上 2.45 / 2.50 的包直接 wget 会返回 403,
需要登录 Qualcomm 账号在 Software Center 页面下载。

7.5 本次实测作业清单(2026-11-11)

作业ID用途结果
编译 tflitejpr7vj1vgMobileNetV2 → tflite✅ 13.97 MB
推理(1 次)jpend347p云端真机推理❌ 设备内部错误
推理(重试)jg9q0nkqp云端真机推理✅ Top-1 = cup
编译 dlcjpxzk2q35MobileNetV2 → dlc✅ 13.4 MB
编译 onnxjgnw0vnmg量化前置✅
量化 INT8j5wrw6ljp100 张校准图✅
compile+linkjgz02dqk5 / jp1m2z92pfloat I/O 上下文❌ 需要量化 I/O
compile+linkj5wrw6j3p / j5782rqvp量化 + --quantize_io✅ 5.66 MB .bin
板端加载 .bin—SDK 2.42 加载云端 2.50 产物❌ err 5000
编译 int8 tflitejp8k2wxqp量化模型 → tflite✅ 4.02 MB
板端本机推理(NPU)—qtld-net-run + INT8 tflite✅ 0 报错,espresso 89.91%
板端本机推理(CPU)—qtld-net-run + float tflite⚠️ 能跑但回退 CPU(69 处 FP16 报错)

脚本都在 ~/QAIRT/demo/:

aihub_mobilenetv2.py       完整流程:编译 + 推理 + 下载
aihub_inference_retry.py   复用已编译产物重试推理
aihub_quant_ctxbin.py      编译 ONNX → 量化 → compile+link

八、常用 CLI 速查

qai-hub configure --api_token xxx      # 配置 token
qai-hub list-devices                   # 列出云端可用设备
qai-hub list-frameworks                # 列出支持的框架
qai-hub list-projects                  # 列出项目

qai-hub submit-compile-job             # 提交编译作业
qai-hub submit-inference-job           # 提交推理作业(含性能分析)
qai-hub upload-model                   # 上传模型

Python API 对应 hub.Client() 的方法,详细见
https://workbench.aihub.qualcomm.com/docs/hub/api.html。


九、AI Hub Models:直接用现成模型

不想自己折腾 PyTorch 导出的话,可以直接用官方模型库:

pip install qai-hub-models

模型页面上能直接看到:输入分辨率、模型大小(float / w8a8)、参数量、各设备上的时延和内存。
比如 ResNet50:

指标值
输入224×224
参数量25.5 M
模型大小(float)97.4 MB
模型大小(w8a8)25.1 MB
精度(参考 / 真机)75.7% / 75.6%

十、学习路线建议

1. 跑通官方 walkthrough(MobileNetV2 编译 + 推理)        —— 半天
2. 用 AI Hub Models 换一个模型,对比不同 runtime            —— 半天
3. 换成自己的模型(torch.export / onnx 上传)              —— 1 天
4. 试 quantize job,对比 w8a8 / w8a16 / fp16 的精度和速度   —— 1 天
5. 把 qnn_context_binary 下载到板子,用 qnn-net-run 跑通    —— 半天
6. 做完整 benchmark(吞吐 / 内存 / 分层耗时)               —— 按需

十一、FAQ

问题说明
报 client.ini not found没配 token,执行 qai-hub configure --api_token xxx
报 SSL 证书错误公司有 SSL 拦截,设置 REQUESTS_CA_BUNDLE 或 pip 的 CA 配置
Windows on ARM 装不上 miniconda直接从 python.org 装 ARM64 Python 3.11+,用 python -m venv
设备列表里找不到 Dragon Q6AAI Hub 不托管这块板子,选同 SoC 的 Dragonwing RB3 Gen 2 Vision Kit
编译出来的东西能在自己板子上跑吗同 SoC + 同 NPU 架构通常可以,但性能数据以自己实测为准
平台上的推理时延和我板子上不一样Proxy/同芯片设备的测试环境不同,且 AI Hub 固定跑 NPU,本地要确保也走 NPU
LLM 怎么搞用 GenieX:https://geniex.aihub.qualcomm.com/

十二、和已有工作的衔接

已有文档内容
QAIRT部署文档.md在 Dragon Q6A 上装 QAIRT SDK 2.42,验证 NPU(HTP v68)
QAIRT实战_ResNet50_NPU推理.md用预编译 v68 模型跑 ResNet50,7.15 ms/张
本文档AI Hub 云端编译 + 量化,产出可直接给上面两篇用的模型

推荐的完整闭环(已在 Dragon Q6A 上实测):

路线一(已验证,无需升级 SDK):
  你的模型 → AI Hub 编译 + INT8 量化 → 下载 xx.tflite
          → scp 到 Dragon Q6A → qtld-net-run --backend htp → NPU 推理

路线二(需 SDK ≥ 2.45):
  你的模型 → AI Hub 量化 + compile&link → 下载 xx.bin
          → qnn-net-run --retrieve_context → NPU 推理

12.1 图片素材清单

所有图片统一放在 ~/QAIRT/images/,文档里用相对路径 ./images/xxx 引用。

文件内容用于
aihub_input_cup.jpg拿铁咖啡杯(AI Hub 官方样图)5.1 推理输入
aihub_inference_result.png输入图 + Top-5 预测条形图(云端真机)5.1 推理结果
aihub_local_npu_result.png输入图 + Top-5(板端本机 NPU,INT8)7.1 本机实测
aihub_local_vs_cloud.png云端 / 本机 NPU / 本机 CPU 的 Top-3 对比7.1 本机实测
resnet50_results.pngResNet50 四张图 + 预测标签《QAIRT实战_ResNet50_NPU推理》
custom_results.png自定义四张图(排箫/冰球/鬣蜥/餐具)《QAIRT实战_ResNet50_NPU推理》

作为对照,同一块 Dragon Q6A 上用 Radxa 预编译的 v68 模型 跑 ResNet50 的结果
(详见《QAIRT实战_ResNet50_NPU推理》):

板端 NPU ResNet50 推理结果


参考

...全文
12 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
azouyana 14小时前
  • 打赏
  • 举报
回复

还没有试过通过本机电脑处理模型的方式来部署,但是AI hub提供的云端设备这一点真的很好

azouyana 14小时前
  • 举报
回复
@azouyana

7,994

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、IoT、PC 、XR、Auto等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
物联网人工智能开源 企业社区 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧