战匈琼 发表于 2025-10-14 18:35:08

从 PyTorch 到 RKNN:一个复杂深度学习模型转换项目的全流程复盘

本文详细记录一次将 PyTorch 模型 (.pth.tar) 转换为 Rockchip 平台专用 RKNN 模型 (.rknn) 的完整流程。涉及环境配置、依赖冲突以及最终的解决方案,希望能为面临类似任务的开发者提供一份详尽的参考。
0 前言

0.1 最终目标

源模型: 一个基于 PyTorch、以 ResNet 为骨干网络的检测模型。
目标格式: 适用于 Rockchip RK3576 芯片的 RKNN 2.1 版本模型。
核心需求: 模型需经过 INT8 量化以在嵌入式端达到高性能。
0.2 最终成功的环境配置


经过多次尝试,以下是最终确定的、能够稳定运行所有转换任务的环境版本组合。
基础环境:
Linux (e.g., Ubuntu)
Python: 3.6
核心AI框架:
PyTorch: 1.13.1 (cu117)
TorchVision: 0.14.1
TorchAudio: 0.13.1
模型转换工具:
ONNX: 1.12.0
ONNX Runtime: 1.12.0
RKNN-Toolkit2: 2.3.2
关键依赖库:
NumPy:calibration.lst准备转换脚本 convert_to_rknn.py (内容见下一节)
1.5 执行模型转换

由于系统 PATH 变量可能存在问题,建议使用Python解释器的绝对路径来确保调用正确的环境。
查找您的Python解释器绝对路径
conda create -n rknn_py36_env python=3.6 pip -y(假设输出为 /path/to/your/anaconda3/envs/rknn_py36_env/bin/python)
使用绝对路径运行脚本 (请替换为上一步的实际输出)
conda activate rknn_py36_env成功后,项目目录下会生成最终的 acm_model_256.rknn 文件。
2 模型转换脚本

点击展开查看完整的Python脚本cd ~/your/rknn-toolkit2-v2.3.2-2025-04-09/3 排错历程与问题归纳

错误现象 (Symptom)根本原因 (Root Cause)最终解决方案 (Final Solution)ModuleNotFoundError (e.g., torch, cv2)Conda环境中缺少必需的Python库。在激活的环境中使用 pip install 或 conda install 安装缺失的包。FileNotFoundError (e.g., config.json, 图片, .lst文件)文件路径错误、文件名不匹配、或数据加载代码有缺陷。修正脚本/配置文件中的路径,重命名文件,或修改数据加载器代码以正确拼接扩展名。IndentationError编辑代码时混用了Tab和空格,或意外删除了函数体。使用编辑器的“将缩进转换为空格”功能统一代码格式,或补全缺失的代码。pip安装成功但python找不到模块PATH环境变量配置错误,导致终端优先调用了Conda环境之外的另一个Python解释器。[临时方案]使用Python解释器的绝对路径来执行命令。[根本方案]修改~/.bashrc文件,注释掉错误的PATH设置.Solving environment: failed (Conda错误)底层网络问题(代理/防火墙)导致Conda无法下载或解析包索引;或极其复杂的依赖冲突。[网络]联系管理员配置网络代理。[依赖]彻底重建环境,并采用分步或手动指定所有版本号的方式安装。AttributeError: 'onnx' has no attribute 'mapping'RKNN-Toolkit2代码与过新版的onnx库不兼容。将 onnx 和 onnxruntime 降级到 1.12.0 版本。...requires onnx>=1.16.1, but you have onnx 1.12.0...RKNN-Toolkit2安装元数据与其代码的实际运行要求自相矛盾。安装rknn-toolkit2的.whl文件时,使用 --no-dependencies 参数忽略其错误的依赖检查。RuntimeError: ... no kernel image is available ...PyTorch版本过旧,不兼容新版GPU的计算能力。安装与GPU硬件匹配的、更新的PyTorch GPU版本。A module that was compiled using NumPy 1.x cannot be run in NumPy 2.0.xNumPy 2.0 引入了不向后兼容的API改动。将NumPy降级到2.0以下的版本 (pip install numpy"

劳欣笑 发表于 9 小时前

喜欢鼓捣这些软件,现在用得少,谢谢分享!
页: [1]
查看完整版本: 从 PyTorch 到 RKNN:一个复杂深度学习模型转换项目的全流程复盘