【已解决】mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28TypeMeta21_typeMetaData

问题描述

使用MMDetection复现论文,出现如下Bug:

ImportError:/home/quaiping/anaconda3/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: 
undefined symbol: _ZN6caffe28TypeMeta21_typeMetaDataInstanceIdEEPKNS_6detail12TypeMetaDataEv

原因分析:

mmcv官网点明了如何去判断并解决这类问题:
在这里插入图片描述
我这里稍微解释一下:
当报错中出现:“undefined symbol”或者“cannot open xxx.so”时,你可以从以下三个方面去考虑:
1.如果“undefined symbol”后面出现的是CUDA/C++ symbols, 具体来说,就是有Libcudart.so/GLIBXX类似内容,就检查CUDA/GCC运行时和编译mmcv时,是不是同一个版本。
补充:可能会有人问,如何去检查?
如果你是直接源码安装mmcv,或者通过pip install mmcv命令安装,那么mmcv在安装过程中有一个编译的过程,你只要保证这个过程的环境与最后运行代码的环境一致,就不会出问题。
如果你是通过下载编译好的whl文件去安装mmcv,就是通过类似命令:pip install mmcv-full==1.3.0 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/index.html,那么你就去检查,你运行代码的环境中的cuda是不是与命令中的cu版本一致,查看自己环境的cuda版本命令:nvcc -V
在这里插入图片描述
很明显,我使用命令后,显示版本号为10.1,与cu101一致,如果你的结果不一致,就按照你自己环境中的cuda版本(红框中中对应的版本)去下载对应版本的mmcv.

2.如果“undefined symbol”后面出现的是Pytorch symbols,具体来说就是有caffe, aten, TH等内容,你就要检查你的环境中的pytorch版本与编译mmcv时使用的pytorch是否一致。
补充:
检查自己环境的pytorch:命令行依次键入:python import torch print(torch.--version--)
检查编译mmcv时的环境:看你通过pip install mmcv-full==1.3.0 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/index.html安装mmcv时,torch是不是与你自己环境相对应。

3.进入目录./mmdet/utils ,运行python collect_env.py,查看PyTorch, torchvision, and MMCV 是否在同一个环境下运行。

解决方案:

很显然,我的bug属于第2种情况: _ZN6caffe28TypeMeta21_typeMetaDataInstanceIdEEPKNS_6detail12TypeMetaDataEv,我的undefined symbol后面出现了caffe字符,这时候需要我去检查我的pytorch版本。
我个人环境的pytorch版本为1.8.0,安装的mmcv是通过1.6.0的pytorch编译的,卸载1.6.0版本ptytorch编译的mmcv,安装对应1.8.0版本的mmcv就行了。

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
这个错误是一个ImportError,它指的是找不到一个名为"/usr/local/lib/python3.8/dist-packages/mmcv/_ext.cpython-38-x86_64-linux-gnu.so"的共享对象或动态链接库。具体的错误信息是"undefined symbol: Z27points_in_boxes_cpu_forwardN2at6TensorES0_S0"。 要解决这个问题,可以尝试使用ldd命令来查看"/usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-37m-arm-linux-gnueabihf.so"依赖的库。可以在终端中输入"ldd /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-37m-arm-linux-gnueabihf.so"来查看。 另外,你还可以参考一个博客文章,链接为https://forums.linuxmint.com/viewtopic.php?f=47&t=291157,在这篇文章中有可能会提供一些关于解决这个问题的有用信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ImportError: /usr/local/anaconda3/envs/py38/lib/python3.8/site-packages/mmcv/_ext.cpython-38-x86_64-](https://blog.csdn.net/weixin_42130300/article/details/121616567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [报错[ImportError: /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-37m-arm-linux-gnuea]](https://blog.csdn.net/mmmm0584/article/details/119382032)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值