[mmsegmentation] mmsegmentation的linux安装记录

2022-10-31 09:15:45

仅作为记录,大佬请跳过。

查看电脑配置

nvcc -V:当前cuda是10.1
nvidia-smi 及 nvidia-smi -a:显卡是NVIDIA GeForce RTX 3090
服务器里已经安装了的cuda版本(cd /usr/localls):cuda-10.1,cuda-10.2,cuda-11.1

关键点

需要安装与显卡算力匹配的某种cuda版本的pytorch(NVIDIA GeForce RTX 3090显卡的算力是sm 8.6)(只有cuda11.1的pytorch才支持算力为8.6的GPU,见重要参考文章2)(显卡算力查询,可参考博主文章传送门

参考

感谢大佬博主文章

重要参考文章2

重要参考文章2附件

官网文档

传送门

博主安装步骤

重装虚拟环境(即3.8.5的pythoncuda11.1的pytorch

conda create-n mmseg python=3.8.5
conda activate mmseg
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1-c pytorch-c conda-forge

(此时最好验证一下,见本文现解决警告的问题部分)

在linux存放程序的路径下:

git clone https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation

下面安装mmcv(github的mmcv中的现成命令,传送门

pip install mmcv-full-f https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html

(细述:conda list查看刚刚安装的pytorch的版本——是1.8.0的cuda11.1的pytorch
在这里插入图片描述
在github的mmcv中寻找相应命令
在这里插入图片描述
在linux输入命令。

在这里插入图片描述

pip install-e.
python mmseg/utils/collect_env.py

后显示:

在这里插入图片描述
无报错,即可。

最终验证

1、在从github中下载的mmsegmentation程序的根目录(博主的是/data_sda/code/mmsegmentation)下,新建文件demo.py

2、仍在根目录下,新建文件夹checkpoints

3、进入新建文件夹checkpoints(cd checkpoints)

4、从这里下载.ph模型,将模型放在checkpoints文件夹里(linux中,在checkpoints文件夹下,可使用wget https://download.op…直接下载)

在这里插入图片描述

5、返回mmsegmentation的根目录

6、编辑demo.py

from mmseg.apisimport inference_segmentor, init_segmentorimport mmcv

config_file='configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'
checkpoint_file='checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'# build the model from a config file and a checkpoint file
model= init_segmentor(config_file, checkpoint_file, device='cuda:0')# test a single image and show the results# img = 'test.jpg'  # or img = mmcv.imread(img), which will only load it once
img='demo/demo.png'
result= inference_segmentor(model, img)

model.show_result(img, result, out_file='result.jpg', opacity=0.5)

7、在mmsegmentation的根目录,运行

python demo.py

8、mmsegmentation的根目录,生成result.jpg

在这里插入图片描述
在这里插入图片描述

**********************************

**********************************

(以下是摸爬滚打的血泪史记录,请跳过)

linux服务器的情况

nvcc -V:当前的cuda是10.1

步骤

according to官方文档

依次在linux中input

conda create-n mmseg2 python=3.7-y
conda activate mmseg2

博主的linux本身cuda是10.1,比较幸运跟官网的一致。
(大佬学长说cuda可以自行再安装不同版本,使用的时候设置一下路径即可。博主暂未尝试)(关于查看linux的所有cuda版本,可参考博主文章传送门

conda install pytorch=1.6.0 torchvision cudatoolkit=10.1-c pytorch
pip install mmcv-full-f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html
git clone https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install-e.# or "python setup.py develop"

此时,再运行参考2大佬博主的文章命令:(也是在mmsegmentation的根目录运行,如博主的/sda/code/temp/mmsegmentation)

python mmseg/utils/collect_env.py

即可。


可是仍有警告。reason是显卡3090过新,torch版本老旧-计算量跟不上,暂未解决。

展示

在这里插入图片描述
主要解决的是,pytorch的gpu版本问题。。。

花絮

本来先按参考2的大佬博主文章进行,能到最后一步,但显示MMCV CUDA Compiler: not available,完全无语。

经皮肉细缕,在虚拟环境中用conda list查看包时,发现安装的pytorch竟然是cpu版本(这句命令conda install pytorch torchvision cudatoolkit=10.1 -c pytorch太坑人了)
最后使用官方的命令解决(仅加入pytorch版本的设置pytorch=1.6.0,即可安装成gpu版本)

conda install pytorch=1.6.0 torchvision cudatoolkit=10.1-c pytorch

在这里插入图片描述

参考

官方文档

传送门

在这里插入图片描述

因为mmcv-full出现了版本不匹配:

在这里插入图片描述

*************************************

现解决警告的问题

重装虚拟环境(即3.8.5的pythoncuda11.1的pytorch

conda create-n mmseg python=3.8.5
conda activate mmseg
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1-c pytorch-c conda-forge

验证:

import torch
torch.cuda.is_available()
torch.zeros(1).cuda()

在这里插入图片描述

在这里插入图片描述
发现了大佬博主文章:传送门

在这里插入图片描述
在这里插入图片描述

***********************

  • 作者:captain飞虎大队
  • 原文链接:https://blog.csdn.net/weixin_41529093/article/details/122039192
    更新时间:2022-10-31 09:15:45