前言
换了个电脑,就想着把之前的mmsegmentation-V0.26.0代码放到新环境,结果踩了不少坑~
过程
官方步骤
0 安装miniconda
1 创建conda 环境
最开始用的是python3.10,后来发现版本太高不是一件好事,所以装的python3.8
2 安装pytorch
使用nivdia-smi看最高支持的CUDA版本是12.0,
用过11.8的CUDA,但和mmcv(最重要的一个库)不太兼容,所以选择了10.2的CUDA和1.10的torch
图源自mmcv官网
去torch官网找到对应版本的pip指令,复制后输入到终端,运行一下,等到出现http://xxx.whl文件即可停止,复制该文件地址,用文件的形式手动下载
下载成功的文件如下图,不难发现我下过2.0+11.8,不兼容
激活虚拟环境,pip install xx.whl
即可安装torch。
但torchvision还没有下载,继续手动安装。
根据Github上的版本对应关系找到合适版本
去torchvision的whl网址找到对应版本下载,0.11.x有点不一致也行
3 安装mmseg
官方给的方法是通过git安装,但此方法安装的是它最新的版本,和我之前22.7月的版本差异较大,架构都有点变了。
git clone -b main https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install -v -e .
# '-v' 表示详细模式,更多的输出
# '-e' 表示以可编辑模式安装工程,
# 因此对代码所做的任何修改都生效,无需重新安装
我之前的代码中setup.py这些重要的文件不见了,所以只能从官网上找。
readme.md中会说明当前的版本
找到官网中的tag标签
翻了两页找到了v0.26.0
下载压缩文件,解压缩。这就等于上面三行代码中的git clone xxx。cd到对应路径,pip install -v -e .
即可
4 安装mmcv-full
官方教程如下:
pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"
mmcv2.0对之前的代码来说太高了,自动下载的版本也经常不对,所以还是手动下载吧。
前面按照mmcv的版本对应关系下好了torch和CUDA,这一步就比较容易。下方网址会通过输入的CUDA+torch版本检索它有的mmcv版本,呈现出来,找到自己想要的版本,手动下载安装即可。
https://download.openmmlab.com/mmcv/dist/cu102/torch1.10.0/index.html
这里最好知道mmseg当前版本需要的mmcv版本,我是运行代码报错:mmcv最低1.3.0最高1.6.0,才选择的这个版本
5 下载权重文件
官方教程:
如果用的是git clone的最新版本,那跟着教程就行。但手动安装的0.26.0老版本,可能它找不到这个最新的权重文件,所以最好用本地的mmsegmentation/docs/en/get_started.md文件中的测试命令
出现result.jpg 就是成功了,把以前代码的改动部分copy到新代码里面即可。(以前24G显存,现在8G,batchsize改小了才没报内存错误)