K510常见问题解答 FAQ

1. 安装 whl包出错

1.1 xxx.whl is not a supported wheel on this platform.

  • 升级 pip
    pip install --upgrade pip

2.编译模型时报错

2.1 System.NotSupportedException: Not Supported *** op: XXX

  • A:该异常表明 XXX算子尚未支持,可以在nncase Github Issue中提需求。当前目录下 ***_ops.md文档,可以查看各个推理框架中已经支持的算子。如果 XXX属于 FAKE_QUANTDEQUANTIZEQUANTIZE等量化相关的算子,表明当前模型属于量化模型,nncase目前不支持这类模型,请使用浮点模型来编译 kmodel

2.2

System.IO.IOException: 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

  • 使用 sudo gedit /proc/sys/fs/inotify/max_user_instances修改128为更大的值即可。

2.3 RuntimeError: Failed to initialize hostfxr. or RuntimeError: Failed to get hostfxr path.

  • 需要安装dotnet-sdk-7.0,不要在anaconda的虚拟环境中安装。
    • Linux: sudo apt-get update sudo apt-get install dotnet-sdk-7.0

如果安装完毕后仍然报错,配置dotnet环境变量。

export DOTNET_ROOT=/usr/share/dotnet
  • Windows: 请自行查阅微软官方文档。

3. 推理时报错

3.1 nncase.simulator.k510.sc: not found

或者以下情况:

  • "nncase.simulator.k510.sc: Permision denied."
  • "Input/output error."
  • A:将nncase的安装路径加入到 PATH环境变量中,并检查一下nncase和nncase-kpu版本是否一致,如果不一致,请安装相同版本的Python包 pip install nncase==x.x.x.x nncase-kpu==x.x.x.x

root@a52f1cacf581:/mnt# pip list | grep nncase nncase 2.1.1.20230721 nncase-kpu 2.1.1.20230721


4. k510开发板推理时报错

4.1 data.size_bytes() == size = false (bool)

  • 推理时输入数据有错误,与模型输入节点shape、type不匹配。当编译模型时配置了前处理相关参数,模型输入节点shape和type信息会有相应的更新。请以模型编译时配置的 input_shapeinput_type为准来生成输入数据。

4.2 std::bad_alloc

  • 通常是因为内存分配失败导致的,可做如下排查。
    • 检查生成的kmodel是否超过当前系统可用内存
    • 检查App是否存在内存泄露

4.3 terminate:Invalid kmodel

加载kmodel代码如下时,抛出该自定义异常内容。

interp.load_model(ifs).expect(“Invalid kmodel”);