关于ppocrv5的检测识别模型由onnx转为mindir

请问有没有大佬实操成功的?我使用mindspor_lite目前还在解决环境适配问题。
我尝试了mindspor_lite2.6,python环境3.10.15,CANN版本8.0.0,目前还没成功!

用户您好,欢迎使用MindSpore,请将硬件信息和详细的问题信息补充一下,方便快速定位~

非常感谢您的回复。我的硬件以及驱动等信息如下所示:
CPU相关信息:
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 256
On-line CPU(s) list: 0-255
Vendor ID: HiSilicon
Model name: Kunpeng-920
Model: 0
Thread(s) per core: 1
Core(s) per socket: 64
Socket(s): 4
Stepping: 0x1
Frequency boost: disabled
CPU max MHz: 3000.0000
CPU min MHz: 200.0000
BogoMIPS: 200.00

NPU相关信息:
±-----------------------------------------------------------------------------------------------+
| npu-smi 24.1.rc2 Version: 24.1.rc2 |
±--------------------------±--------------±---------------------------------------------------+
| NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page)|
| Chip | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) |
+===========================+===============+====================================================+
| 0 910B4 | OK | 88.7 35 0 / 0 |
| 0 | 0000:C1:00.0 | 0 0 / 0 3002 / 32768 |

操作系统:
NAME=“openEuler”
VERSION=“22.03 LTS”
ID=“openEuler”
VERSION_ID=“22.03”
PRETTY_NAME=“openEuler 22.03 LTS”
ANSI_COLOR=“0;31”

驱动相关:
Version=24.1.rc2
ascendhal_version=7.35.23
aicpu_version=1.0
tdt_version=1.0
log_version=1.0
prof_version=2.0
dvppkernels_version=1.1
tsfw_version=1.0
Innerversion=V100R001C18SPC001B233
compatible_version=[V100R001C30],[V100R001C13],[V100R001C15],[V100R001C17],[V100R001C18]
compatible_version_fw=[7.0.0,7.2.99]
package_version=24.1.rc2

runtime_running_version=[7.6.0.1.220:8.0.0]
compiler_running_version=[7.6.0.1.220:8.0.0]
hccl_running_version=[7.6.0.1.220:8.0.0]
opp_running_version=[7.6.0.1.220:8.0.0]
toolkit_running_version=[7.6.0.1.220:8.0.0]
aoe_running_version=[7.6.0.1.220:8.0.0]
ncs_running_version=[7.6.0.1.220:8.0.0]
opp_kernel_running_version=[7.6.0.1.220:8.0.0]
runtime_upgrade_version=[7.6.0.1.220:8.0.0]
compiler_upgrade_version=[7.6.0.1.220:8.0.0]
hccl_upgrade_version=[7.6.0.1.220:8.0.0]
opp_upgrade_version=[7.6.0.1.220:8.0.0]
toolkit_upgrade_version=[7.6.0.1.220:8.0.0]
aoe_upgrade_version=[7.6.0.1.220:8.0.0]
ncs_upgrade_version=[7.6.0.1.220:8.0.0]
opp_kernel_upgrade_version=[7.6.0.1.220:8.0.0]
runtime_installed_version=[7.6.0.1.220:8.0.0]
compiler_installed_version=[7.6.0.1.220:8.0.0]
hccl_installed_version=[7.6.0.1.220:8.0.0]
opp_installed_version=[7.6.0.1.220:8.0.0]
toolkit_installed_version=[7.6.0.1.220:8.0.0]
aoe_installed_version=[7.6.0.1.220:8.0.0]
ncs_installed_version=[7.6.0.1.220:8.0.0]
opp_kernel_installed_version=[7.6.0.1.220:8.0.0]

我是在上述环境中启动的容器,容器启动的命令是
docker run -itd --restart always --name ocr --privileged --network=host --shm-size=1G -v /usr/local/Ascend/driver:/usr/local/Ascend/driver -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /usr/local/dcmi:/usr/local/dcmi -v /onnx2mindir:/app -e ASCEND_RT_VISIBLE_DEVICES=“0” ocr:mindir-cann8.0-arm64
容器内使用
cat /usr/local/Ascend/ascend-toolkit/latest/version.cfg与宿主机一致,进行了source操作
source /usr/local/Ascend/ascend-toolkit/set_env.sh以及添加环境变量的操作export LD_LIBRARY_PATH=/app/onnx2mindir/mindspore-lite-2.5.0-linux-aarch64/tools/converter/lib:${LD_LIBRARY_PATH}
报错信息有点多,主要是关于python版本(3.10.15)以及类似于下面的这种报错

期待您的解惑。此外,ppocrv5的模型从onnx转mindir官方是否验证过呢,静候回复。

ppocr是百度飞将框架的吗?其它框架导出的模型应该大部分都没有测试过吧,那么多模型不可能都拿来测试过;目前的情况确实不是所有模型都支持转换的,onnx的话可能还有不同的版本兼容也不一样,其次是可能某些算子或者说控制流啥的出现不支持的情况;
方便把你的onnx模型发出来吗,我在我的昇腾环境也试试看转换行不行?

1 个赞

大佬你好,ppocr是百度的字符识别模型,主要想在910B上部署mindir进行推理,因为在服务器上百度的NPU镜像推理有问题。确实哇,模型很多没测试过是正常的,如果验证过那就更有成功的概率啦。新用户无法上传附件,我把它传到百度云你方便下载一下不?
链接: 百度网盘 请输入提取码 提取码: 8v8t
不方便的话我再看看怎么给到你

可以下载,我试了下用里面最小的那个onnx转mindir,文件倒是转出来了,但是里面确实有一些ERROR信息,明确提示了有算子相关的不支持,比如那个HardSwish,这种情况虽然转出来了mindir文件,推理可能也有问题:

4个onnx文件我都试了一下,都能转出mindir,但那两个mobile的都有提示HashSwish不支持的ERROR信息,那两个server的,没有ERROR信息,不过警告比较多,不确定是否会影响推理:

1 个赞

2333,大佬方便说一下你的环境嘛?我照着你的搭一下,或者大佬哈哈哈,我拿你转好的mindir模型我试试能不能在我的910b4上推理一下 :rofl: :blush:

我用的mslite 2.6云测工具转的,也是昇腾环境,cann是8.0,昇腾芯片型号是310P1,不同型号转出来的可能不能通用,因为转的过程我设置了–optimize=ascend_oriented,他会固化指定芯片的算子

好咧大佬,确实是有这个问题。请问一下你的“mslite 2.6云测工具”指的是?另外python环境是多少,重要不?我看不同版本的mslite说明页面的操作指南都有些区别。最后,大佬你启容器的时候是不是要做一些文件库的映射,这可能涉及权限或者环境变量?哈哈哈,感觉我也快成功了

不过910b和310P这方面兼容应该都差不多,910b的支持不应该比310P差,可以检查下环境里面的各种版本,看你上面用的是2.5,试试看2.6

mslite是分为端侧和云测两套的,服务器上或者说其它昇腾设别用的就是云测,转出的就是.mindir格式;端侧的话,通常手机上用,转出的是.ms格式;我这边是用的python 3.10,我这CPU还是x86的环境,我直接物理机上自己搭建的环境,没有用容器;如果用容器的话,确实需要把昇腾设备信息映射进容器的,主要是驱动的映射,否则调用不了昇腾设备,cann之类的都是在容器内安装的,无需映射,物理机上的环境变量和容器内部无关;其方面应该和转化没有什么必然联系

1 个赞

要得,我试试去,谢谢。

此话题已在最后回复的 60 分钟后被自动关闭。不再允许新回复。