解决ImportError: ..mmcv/_ext.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZNK2at6Tensor6device

最近在矩池云的的Tesla K80机子上跑MMYOLO,跟着MMYOLO官方文档《自定义数据集 标注+训练+测试+部署 全流程 》操作到 “2.1.1 软件或者算法辅助”时,利用预训练模型+官方脚本去辅助标注时,一按下回车就报错:

运行的脚本

python demo/image_demo.py ./data/cat/images \
                          ./configs/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py \
                          ./work_dirs/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth \
                          --out-dir ./data/cat/labels \
                          --class-name cat \
                          --to-labelme

报错信息如下:

ImportError: /root/miniconda3/envs/open-mmlab/lib/python3.8/si
te-packages/mmcv/_ext.cpython-38-x86_64-linux-gnu.so: undefined
 symbol:_ZN2at4_ops5zeros4callEN3c108ArrayRefINS2_6SymIntEEENS2
_8optionalINS2_10ScalarTypeEEENS6_INS2_6LayoutEEENS6_INS2_6Dev
iceEEENS6_IbEE

我的解决方法:

  • 使用pip list查看当前环境中的mmcv版本
  • 使用pip uninstall 将查看到的mmcv删掉
  • 再用pip install将文档中指定版本的mmcv下载回来

可能原因(只是猜测):

  1. 矩池云服务器有一些预装的包看似符合我们的要求,但实际上他们可能并不适用于MMYOLO,所以需要先删掉,再重新下载合适的包。
  2. 安装mmcv包的时候安装位置应该在对应环境中的mmyolo文件夹下。

起初我将这段信息百度之后,了解到可能是mmcv的版本不匹配,但是我这mmcv是跟着官方文档下载的,而且我反复pip list查看mmcv版本,发现没问题,百思不得其解之下,我还是尝试将mmcv换成mmcv-full,结果系统提示我还是得用mmcv2.0.0rc1。但是在我重新下回来之后,阴差阳错地就将问题解决了,报错也没有了。所以我猜测是原来安装mmcv包的时候安装位置有问题。

以上解决方法仅供参考,如有不足还请大佬指点

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华幽子丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值