7,994
社区成员
发帖
与我相关
我的任务
分享记录时间: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
Qualcomm® AI Hub(Workbench)是高通官方的云端 AI 模型优化平台,核心是两件事:
你的 PC(Python 客户端) Qualcomm 云端
┌──────────────────────┐ ┌──────────────────────────┐
│ 导出模型 (torch/onnx) │ ── 上传 ──▶ │ 编译 job(真机 NPU/GPU) │
│ │ │ 推理 job(真机跑一遍) │
│ 下载优化产物 │ ◀─ 下载 ── │ 量化 job │
└──────────────────────┘ └──────────────────────────┘
│
└────▶ 部署到自己的板子(Dragon Q6A / QCS6490)跑
| 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 负责「在你的板子上把产物跑起来」。两者是上下游关系,不冲突。
workbench.aihub.qualcomm.comconda create python=3.10 -n qai_hub -y
conda activate qai_hub
pip3 install qai-hub
# 如果要用 PyTorch 模型(torch.export 导出),装带 torch 的版本:
pip3 install "qai-hub[torch]"
qai-hub configure --api_token 你的TOKEN
配置会写到 ~/.qai_hub/client.ini,只需配一次。
qai-hub list-devices
能列出一堆设备名就说明通了。
临时环境(如 SageMaker)不想落盘时,可以每次代码里传:
import qai_hub as hub client = hub.Client(hub.ClientConfig(api_token="你的TOKEN"))
我在这块板子上实测过:
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 到板子跑推理。
AI Hub 的设备列表里已经包含 QCS6490 平台(实测 qai-hub list-devices 返回 78 台设备):
| 设备名(Workbench) | OS | 芯片标签 | 说明 |
|---|---|---|---|
| Dragonwing RB3 Gen 2 Vision Kit | Qc_Linux 1.6 | qualcomm-qcs6490 / qcs6490 | ✅ 与 Dragon Q6A 同 SoC(HTP v68) |
| QCS8550 (Proxy) | Android 12 | qualcomm-qcs8550-proxy | 架构 v73,不建议拿来跑 |
| Dragonwing IQ-9075 EVK | Qc_Linux 1.9 | qualcomm-qcs9075 | v73 |
| Arduino VENTUNO Q | Ubuntu 24.04 | qualcomm-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")
这是官方 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 上。
板子是 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 官方的咖啡杯样图):
① 测试输入图

② 云端真机 Top-5 结果

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 | 作用 | 什么时候用 |
|---|---|---|---|
| Compile | submit_compile_job | 把模型编译成目标设备的运行时格式 | 必须有,是后面所有作业的前提 |
| Inference | submit_inference_job | 在真机上跑一次推理,拿到输出 + 性能数据 | 验证精度、看时延/内存 |
| Quantize | submit_quantize_job | INT8/INT16/INT4 量化(需编译成 ONNX 作为输入) | 模型太大、要上 NPU |
| Link | submit_link_job | 把多个编译产物链接成一个 | 多模型/多图部署 |
# 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 | .onnx | ONNX Runtime + QNN EP,适合 Windows;量化作业的输入 |
qnn_dlc | .dlc | 与硬件无关 |
precompiled_qnn_onnx | .onnx + .bin | ONNX 包装的 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)。
① QNN context binary(最推荐,与板端 qnn-net-run 直接对接)
注意三点(均为实测结论):
submit_compile_and_link_jobs() 生成,不是 --target_runtime 取值;(编译作业列表, link 作业)**,不是单个 job;--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 模式,性能最高)。
| 现象 | 原因 | 解决 |
|---|---|---|
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 再跑 |
同样一条命令,只是模型不同,执行后端完全不同:
| 模型 | 大小 | doesn't support FP16 报错 | 实际执行 |
|---|---|---|---|
mobilenet_v2.tflite(float,未量化) | 13.97 MB | 69 处 | ❌ 全部回退 CPU |
mbv2_int8.tflite(INT8 量化) | 4.02 MB | 0 | ✅ 完整跑在 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-1 | Top-2 | Top-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)实际输出

② 三种执行方式对比

③ 完整 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%
💡 两个重要发现:
- 本机 NPU 与 CPU 结果几乎一致(89.91% vs 89.14%),说明 INT8 量化损失很小,且 NPU 路径正确;
- 云端结果与本地差异较大,原因是预处理不同:官方 walkthrough 只做了
/255,
而本例按 MobileNetV2 的标准预处理做了(x-mean)/std。预处理不一致,结果就会偏。
③ ONNX 模型
用 ONNX Runtime + QNN Execution Provider(需自行编译 aarch64 版 onnxruntime,或用 QAIRT 自带的 lib/python/qti/aisw/core)。
AI Hub 页面会给 REFERENCE METRIC / ON-DEVICE METRIC 两个数字(如 ResNet50:75.7% / 75.6%)。
自己部署时要保证:
实测结论: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。
| 方案 | 做法 | 说明 |
|---|---|---|
| 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 页面下载。
| 作业 | ID | 用途 | 结果 |
|---|---|---|---|
| 编译 tflite | jpr7vj1vg | MobileNetV2 → tflite | ✅ 13.97 MB |
| 推理(1 次) | jpend347p | 云端真机推理 | ❌ 设备内部错误 |
| 推理(重试) | jg9q0nkqp | 云端真机推理 | ✅ Top-1 = cup |
| 编译 dlc | jpxzk2q35 | MobileNetV2 → dlc | ✅ 13.4 MB |
| 编译 onnx | jgnw0vnmg | 量化前置 | ✅ |
| 量化 INT8 | j5wrw6ljp | 100 张校准图 | ✅ |
| compile+link | jgz02dqk5 / jp1m2z92p | float I/O 上下文 | ❌ 需要量化 I/O |
| compile+link | j5wrw6j3p / j5782rqvp | 量化 + --quantize_io | ✅ 5.66 MB .bin |
板端加载 .bin | — | SDK 2.42 加载云端 2.50 产物 | ❌ err 5000 |
| 编译 int8 tflite | jp8k2wxqp | 量化模型 → 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
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。
不想自己折腾 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(吞吐 / 内存 / 分层耗时) —— 按需
| 问题 | 说明 |
|---|---|
报 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 Q6A | AI 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 推理
所有图片统一放在 ~/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.png | ResNet50 四张图 + 预测标签 | 《QAIRT实战_ResNet50_NPU推理》 |
custom_results.png | 自定义四张图(排箫/冰球/鬣蜥/餐具) | 《QAIRT实战_ResNet50_NPU推理》 |
作为对照,同一块 Dragon Q6A 上用 Radxa 预编译的 v68 模型 跑 ResNet50 的结果
(详见《QAIRT实战_ResNet50_NPU推理》):
