)
問題分析
原問題
Traceback (most recent call last):
File "tools/train.py", line 7, in <module>
from mmdet.datasets import get_dataset
File "/home/user/code/CrossScene/UA-CMDet-main/mmdet/datasets/__init__.py", line 1, in <module>
from .custom import CustomDataset
File "/home/user/code/CrossScene/UA-CMDet-main/mmdet/datasets/custom.py", line 11, in <module>
from .extra_aug import ExtraAugmentation
File "/home/user/code/CrossScene/UA-CMDet-main/mmdet/datasets/extra_aug.py", line 5, in <module>
from mmdet.core.evaluation.bbox_overlaps import bbox_overlaps
File "/home/user/code/CrossScene/UA-CMDet-main/mmdet/core/__init__.py", line 4, in <module>
from .loss import * # noqa: F401, F403
File "/home/user/code/CrossScene/UA-CMDet-main/mmdet/core/loss/__init__.py", line 1, in <module>
from .losses import (weighted_nll_loss, weighted_cross_entropy,
File "/home/user/code/CrossScene/UA-CMDet-main/mmdet/core/loss/losses.py", line 7, in <module>
from ...ops import sigmoid_focal_loss
File "/home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/__init__.py", line 1, in <module>
from .dcn import (DeformConv, DeformConvPack, ModulatedDeformConv,
File "/home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/dcn/__init__.py", line 1, in <module>
from .functions.deform_conv import deform_conv, modulated_deform_conv
File "/home/zhangyihong/code/CrossScene/UA-CMDet-main/mmdet/ops/dcn/functions/deform_conv.py", line 5, in <module>
from .. import deform_conv_cuda
ImportError: /home/zhangyihong/code/CrossScene/UA-CMDet-main/mmdet/ops/dcn/deform_conv_cuda.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN3c105ErrorC1ENS_14SourceLocationERKSs
問題分析
在查找答案的過程中遇到了幾種回答,大多評(píng)論都表示有用
庫(kù)的版本不兼容
多數(shù)遇到的是這種,但因?yàn)閹?kù)比較難發(fā)現(xiàn)哪個(gè)不匹配等等原因,繼續(xù)尋找其它回答…(當(dāng)然,如果出現(xiàn)numpy或是pillow庫(kù)的問題,還是及時(shí)解決比較好)
我運(yùn)行的是UA-CMDet,如果有類似的可以作為簡(jiǎn)單的參考用(linux系統(tǒng))
Package Version Editable project location
------------------------ ------------- -----------------------------------------------------------------------------
addict 2.4.0
aliyun-python-sdk-core 2.14.0
aliyun-python-sdk-kms 2.16.2
certifi 2022.12.7
cffi 1.15.1
charset-normalizer 3.3.2
click 8.1.7
colorama 0.4.6
crcmod 1.7
cryptography 41.0.7
cycler 0.11.0
Cython 3.0.6
deform-conv 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/dcn
fonttools 4.38.0
idna 3.6
importlib-metadata 6.7.0
jmespath 0.10.0
kiwisolver 1.4.5
Markdown 3.4.4
markdown-it-py 2.2.0
masked-conv2d-cuda 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/masked_conv
matplotlib 3.5.3
mdurl 0.1.2
mkl-fft 1.3.0
mkl-random 1.1.1
mkl-service 2.3.0
mmcv 0.4.3
mmdet 0.6.0+9a775c6 /home/user/code/CrossScene/UA-CMDet-main
mmengine 0.10.1
model-index 0.1.11
ninja 1.11.1.1
nms-cuda 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/nms
numpy 1.21.6
opencv-python 4.2.0.34
opendatalab 0.0.10
openmim 0.3.9
openxlab 0.0.10
ordered-set 4.1.0
oss2 2.17.0
packaging 23.2
pandas 1.3.5
Pillow 6.2.2
pip 22.3.1
platformdirs 4.0.0
poly-nms-cuda 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/poly_nms
psroi-align-rotated-cuda 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/psroi_align_rotated
psutil 5.9.6
pycocotools 2.0.7
pycparser 2.21
pycryptodome 3.19.0
Pygments 2.17.2
pyparsing 3.1.1
python-dateutil 2.8.2
pytz 2023.3.post1
PyYAML 6.0.1
requests 2.28.2
rich 13.7.0
roi-align-cuda 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/roi_align
roi-align-rotated-cuda 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/roi_align_rotated
roi-pool 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/roi_pool
scipy 1.7.3
setuptools 60.2.0
shapely 2.0.2
SigmoidFocalLoss 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/sigmoid_focal_loss
six 1.16.0
soft-nms 0.0.0 /home/user/code/CrossScene/UA-CMDet-main/mmdet/ops/nms
swig 4.1.1.post1
tabulate 0.9.0
termcolor 2.3.0
terminaltables 3.1.10
tomli 2.0.1
torch 1.1.0
torchvision 0.3.0
tqdm 4.65.2
typing_extensions 4.7.1
urllib3 1.26.18
wheel 0.38.4
yapf 0.40.2
zipp 3.15.0
torch問題
- 未導(dǎo)入torch,from … import deform_conv_cuda前應(yīng)加import torch
- 版本替換,也是我遇到的問題,因?yàn)槲覍orch1.1換為了gpu版本,所以出現(xiàn)了mmdet文件未能檢索到torch版本的更迭。以下將專門針對(duì)此問題進(jìn)行說明,參考link
解決方案
主要更改文件在mmdet/ops,以其下目錄的mmdet/ops/dcn文件進(jìn)行說明
為使from … import deform_conv_cuda正常運(yùn)行,即需將其內(nèi)部的cpp與換版本后的torch建立聯(lián)系
方法
在src的cpp文件中首行輸入如下代碼
#ifndef AT_CHECK
#define AT_CHECK TORCH_CHECK
#endif
之后cd到mmdet/ops/dcn目錄下運(yùn)行文章來源:http://www.zghlxwxcb.cn/news/detail-826238.html
python setup.py develop
此時(shí)會(huì)重新創(chuàng)建聯(lián)系,出現(xiàn)大概如下界面
再次運(yùn)行代碼,發(fā)現(xiàn)還是會(huì)報(bào)錯(cuò)(maybe),但仔細(xì)看報(bào)錯(cuò)行中會(huì)發(fā)現(xiàn)報(bào)錯(cuò)的目錄變了(舉個(gè)例子)
可能變成圖中任意一個(gè)目錄出錯(cuò),沒關(guān)系,按照上面步驟更新torch連接就可以,如果有什么簡(jiǎn)單的方法也歡迎分享文章來源地址http://www.zghlxwxcb.cn/news/detail-826238.html
到了這里,關(guān)于Linux系統(tǒng)下cpython-37m-x86_64-linux-gnu.so文件ImportError的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!