Quin3333 2024-04-17 18:31 采纳率: 62.5%
浏览 6

树莓派上通过ncnn部署模型遇到问题

我试图将自己训练好的模型通过ncnn部署到树莓派4b上,我的具体过程参考该文https://blog.csdn.net/deku_desi/article/details/125293457?spm=1001.2014.3001.5501.
目前遇到的问题是,当我试图将onnx模型转换为ncnn,将模型优化为fp16时,终端中报错显示"Segmentation fault (core dumped)",并且模型优化失败.请问该如何解决?

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-17 18:31
    关注

    引自免费微信小程序:皆我百晓生

    针对您在树莓派上尝试将ONNX模型转换为NCNN并进行FP16优化时遇到的“Segmentation fault (core dumped)”错误,这里有几个可能的解决步骤:

    1. 检查NCNN版本: 确保您使用的NCNN版本支持ONNX模型转换和FP16优化。您可以访问NCNN的GitHub仓库(https://github.com/Tencent/ncnn)查看最新版本及其特性。

    2. 清理构建环境: 有时候,旧的构建文件可能会导致问题。在开始新的构建之前,清除构建目录:

    cd /path/to/your/ncnn/build/
    rm -rf CMakeCache.txt cmake_install.cmake Makefile
    

    然后重新配置和编译NCNN:

    cmake ..
    make -j$(nproc)
    sudo make install
    
    1. 更新依赖库: 确保您的系统上的所有相关库都是最新的,特别是OpenCV、protobuf等。这可以通过包管理器完成,例如在Debian或Ubuntu上使用apt-get update && apt-get upgrade

    2. 运行转换命令: 根据您提供的文章,确认转换命令正确无误。确保路径正确,并且已经安装了必要的工具,如onnx-convert。例如:

    /path/to/onnx-convert --backend ncnn --output model.fp16.param model.onnx
    
    1. 检查模型大小: 较大的模型可能会超过树莓派的内存限制,导致 segmentation fault。尝试简化模型或者调整模型架构以适应树莓派的资源。

    2. 调试: 如果以上步骤都无法解决问题,可以尝试在转换过程中启用调试信息,以便找出导致崩溃的具体原因:

    export NCNN_DEBUG=1
    /path/to/onnx-convert --backend ncnn --output model.fp16.param model.onnx
    
    1. 检查硬件兼容性: 虽然树莓派4B有不错的性能,但其GPU并不支持所有的深度学习操作。确认您的模型中的所有运算都在树莓派的GPU上支持。

    2. 提供更多信息: 如果问题依然存在,请提供详细的错误日志,这样可以帮助分析具体的错误来源。如果错误日志太大,可以在Pastebin或其他类似服务上分享,然后在这里提供链接。

    如果您能按照上述步骤操作并提供更多细节,我可以更准确地帮助您解决问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月17日

悬赏问题

  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题