要求mmcv-full版本是1.1.5,经检测发现torch版本是1.10.0,cuda版本是11.3,通过mmcv官网https://github.com/open-mmlab/mmcv
pip install mmcv-full==1.1.5 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.htm 下载失败,提示是: RuntimeError: The detected CUDA version (10.0) mismatches the version that was used to compile PyTorch (11.3). Please make sure to use the same CUDA versions. 但是之前下载的提示还是找不到1.1.5对应版本,当时还可以下载1.2.0可是现在发现1.2.0都下载不了,那么我猜测难道cuda和torch版本真的显示不对? 按照提示去找对应cuda10.0和torch11.3的mmcv-full版本,发现在官网上找不到对应版本! 我只能用 pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.htm 去下载默认的版本,结果顺利下载了默认的1.4.0版本的mmcv-full,所以错误原因肯定不是cuda和torch版本的问题,mmcv-full虽然顺利安装,但是版本是不对应的肯定不行,运行: python mmdet/utils/collect_env.py 提示mmcv版本不对,我找到代码问题的源头,发现是在import mmdet时的__init__.py文件内部用assert构造了错误,于是我改掉了这个错误提示后就不会报版本错误,后面我也不知道会不会出现版本不对应的问题,目前问题是解决了。mmcv_maximum_version = '1.4.0'
总结: 还有我发现使用mmdet就是先把这个mmdet文件包放在工程文件下,然后运行 python setup.py develop
import mmcv
from .version import __version__, short_version
def digit_version(version_str):
digit_version = []
for x in version_str.split('.'):
if x.isdigit():
digit_version.append(int(x))
elif x.find('rc') != -1:
patch_version = x.split('rc')
digit_version.append(int(patch_version[0]) - 1)
digit_version.append(int(patch_version[1]))
return digit_version
mmcv_minimum_version = '1.1.1'
mmcv_maximum_version = '1.4.0'
mmcv_version = digit_version(mmcv.__version__)
assert (mmcv_version >= digit_version(mmcv_minimum_version)
and mmcv_version <= digit_version(mmcv_maximum_version)), \
f'MMCV=={mmcv.__version__} is used but incompatible. ' \
f'Please install mmcv>={mmcv_minimum_version}, <={mmcv_maximum_version}.'
__all__ = ['__version__', 'short_version']
|