1、一开始安装mmcv-full,卡在build wheel,提示cuda版本不匹配 。
2、不想换版本,就换成了mmcv2.0.0,但是提示mmcv版本不兼容,这时候可以修改报错的init文件,修改其min和max支持的版本,把max改成2.1.0
3、但是不可以,因为要用到mmsegmentation,其调用了mmcv的parrel包,但是其已在mmcv2.0.0中被删除,也没有找到替代的函数,因此只能回退,回去重装cuda版本。
4、不想重装下,想着用虚拟环境试试行不行,用了下面的命令
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch
没用,只能卸载重装cuda
5、cuda安装
【Linux】多个版本的CUDA切换 - 知乎 (zhihu.com)
6、cuda卸载
ubuntu20.04卸载cuda11.4重装cuda11.0-CSDN博客
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11.0/index.html
tips:
其中修改bashrc文件,非正常关闭了一次,要删除其产生的swp可交换文件才可以,这个文件的作用就是保存非正常关闭的数据
sudo rm -f filename.swp
7、但是这样之后,还是会报错,说缺少chatdeq,之前可以装的mmcv2.0.0也提示这个,就直接删了环境重建,不过换了python的版本
8、最终环境
python3.8
cuda11.3
先用conda install了torch,然后pip install -U opemimi openmim;
mim install mmcv-full==1.4.0成功了,随后下载了mim install mmsegmentation==0.29.0
这时候因为版本,下载 了mmcv-full==1.6.7
9、一些报错
1)Leaking Caffe2 thread-pool after fork. (function pthreadpool
没找到mmcv框架的加载数据集函数
2)AttributeError: module ‘numpy‘ has no attribute ‘float‘.
因为np.float从1.24起被删除。所用的代码是依赖于旧版本的Numpy。
方案一: pip install numpy==1.23.5
方案二:将代码中的np.float改为float,在大多数情况下,只需将 numpy 的别名替换为内置的 Python 类型就可以解决问题。bool、str、int等也类似。
3)TypeError: FormatCode() got an unexpected keyword argument ‘verify‘
原因: yapf版本过高,目前版本为 0.40.2
解决方法:重装低版本yapf即可
pip uninstall yapf
pip install yapf==0.40.1