yolact模型DCNv2模块编译错误解决方法

配置环境

1. Ubuntu 18.04

2. Anaconda

3.Cuda10.2+cudnn7.6.5

问题描述

按照yolact(https://github.com/dbolya/yolact)给的DNCv2链接https://github.com/CharlesShang/DCNv2/tree/pytorch_1.0对DNCv2进行编译时出现以下错误:

error: identifier "THCState_getCurrentStream" is undefined

解决方法

1. 首先检查了anaconda环境中的cuda和cudnn是否与系统安装的版本是否一致(OK);

2. 然后检查了.bashrc文件中的环境变量路径是否正确(OK);

3. 接着用某度度了若干教程,没有成功解决问题;

4. 使用Bing搜索了相关问题,查看到以下链接(https://github.com/CharlesShang/DCNv2/issues/57):讨论文的问题为:

DCNv2/src/cuda/dcn_v2_cuda.cu(107): error: identifier "THCState_getCurrentStream" is undefined #57

oh, my god. 又回到了Github/(ㄒoㄒ)/~~  这里面罗列了45个issue. 根据大佬们的讨论,看到了点赞比较多的解决方案:https://github.com/jinfagang/DCNv2_latest

5. 将DCNv2_latest包git下来,替换yolact中对应的文件夹,然后进行编译. 在编译的时候需要注意make.sh脚本文件,其内容为:

#!/usr/bin/env bash
sudo rm *.so
sudo rm -r build/
sudo python3 setup.py build develop

如果是非Anaconda环境,上述编译过程应该不会出问题,其实可以把sudo给del掉,不然运行时可能会要求权限; 主要说一下我的情况吧,上述提到我的配置环境为Anaconda,因此在虚拟环境中运行上述脚本会报错: 找不到torch模块. 因为给了sudo权限,因此是在全局环境下寻找相关模块,就可能引起错误. 针对此类问题,只需要将sudo全部del掉,这样在编译的时候就只在虚拟环境下寻找相关的模块或包. 然后就可以愉快的测试了☺

参考链接

1.yolact: https://github.com/dbolya/yolact
2.DCNv2: https://github.com/CharlesShang/DCNv2/tree/pytorch_1.0
3.DCNv2讨论: https://github.com/CharlesShang/DCNv2/issues/57
4.DCNv2_lastest: https://github.com/jinfagang/DCNv2_latest

 

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值