A:升级 pip >= 20.3
pip install --upgrade pipA:该异常表明 XXX算子尚未支持,可以在nncase Github Issue中提需求。当前目录下 ***_ops.md文档,可以查看各个推理框架中已经支持的算子。
如果 XXX属于 FAKE_QUANT、DEQUANTIZE、QUANTIZE等量化相关的算子,表明当前模型属于量化模型,nncase目前不支持这类模型,请使用浮点模型来编译 kmodel。
2.2 "The configured user limit (128) on the number of inotify instances has been reached, or the per-process limit on the number of open file descriptors has been reached"。
A:使用 sudo gedit /proc/sys/fs/inotify/max_user_instances修改128为更大的值即可。
RuntimeError: Failed to get hostfxr path.
A:需要安装dotnet-sdk-7.0,不要在anaconda的虚拟环境中安装。
-
Linux:
sudo apt-get update sudo apt-get install dotnet-sdk-7.0
如果安装完毕后仍然报类似的错误,配置
dotnet环境变量。 dotnet errorexport DOTNET_ROOT=/usr/share/dotnet -
Windows: 请自行查阅微软官方文档。
A:需要安装nncase-kpu
- Linux:使用pip安装nncase-kpu
pip install nncase-kpu - Windows:在nncase github tags界面下载对应版本的whl包,然后使用pip安装。
安装nncase-kpu之前,请先检查nncase版本,然后安装与nncase版本一致的nncase-kpu。
> pip show nncase | grep "Version:"
Version: 2.8.0
(Linux) > pip install nncase-kpu==2.8.0
(Windows)> pip install nncase_kpu-2.8.0-py2.py3-none-win_amd64.whl或者以下情况:
"nncase.simulator.k230.sc: Permision denied.""Input/output error."
A:将nncase的安装路径加入到 PATH环境变量中,同时检查一下nncase和nncase-kpu版本是否一致。
root@a52f1cacf581:/mnt# pip list | grep nncase
nncase 2.1.1.20230721
nncase-kpu 2.1.1.20230721如果不一致,请安装相同版本的Python包 pip install nncase==x.x.x.x nncase-kpu==x.x.x.x。
A:以上这种情况通常有是app推理时的输入数据文件有错误,与模型输入shape不匹配或者与模型输入type不匹配。尤其当配置了前处理时需要检查这两个属性,添加前处理操作后,模型中增加了相关的节点,输入节点也会发生变化。如果 input_shape、input_type和原始模型不同,则需要以新配置的 shape,type为准来生成输入数据。
A:通常是因为内存分配失败导致的,可做如下排查。
- 检查生成的kmodel是否超过当前系统可用内存
- 检查App是否存在内存泄露
加载kmodel代码如下时,抛出异常 terminate:Invalid kmodel。
interp.load_model(ifs).expect("Invalid kmodel");A:是由于编译kmodel时的nncase版本与当前SDK版本不匹配导致,请按照SDK、nncase版本对应关系查询,并按照更新nncase运行时库教程解决。