K230 SDK 更新nncase运行时库指南
nncase运行时库版本问题说明
1. kmodel 版本说明
由于 kmodel
中没有包含nncase的版本信息,因此无法直接判断 kmodel
是由哪个版本的nncase生成。需自行进行版本信息管理,以下两种方式可供参考:
-
保留完整的编译工程(校正集,参数配置),便于使用任意nncase版本生成
kmodel
。 -
通过
kmodel
的名字进行版本区分,示例代码如下:with open("test.kmodel", "wb") as f:
f.write(kmodel)
# 将上面代码替换为以下内容
import _nncase
with open("test_{}.kmodel".format(_nncase.__version__), "wb") as f:
f.write(kmodel)
2. 版本不兼容问题
由于nncase各版本之间可能存在不兼容的情况,而SDK中的nncase运行时库版本可能与编译 kmodel
时使用的nncase版本不一致,从而导致上板推理时出现异常。因此最好在上板推理前,检查两者的版本是否匹配。
有以下两种方式可供确认版本信息是否匹配:
- 通过版本对应关系表查询。
- 通过镜像名字确定两者的版本,例如
k230_canmv_sdcard_v1.4_nncase_v2.8.0.img.gz
,其中v1.4
表示 SDK 版本,v2.8.0
表示 nncase 版本,即SDK-v1.4可以推理nncase-v2.8.0编译生成的kmodel
。 镜像可通过嘉楠开发者社区获取。