仅作为记录,大佬请跳过。
文章目录
查看电脑配置
nvcc -V:当前cuda是10.1
nvidia-smi 及 nvidia-smi -a:显卡是NVIDIA GeForce RTX 3090
服务器里已经安装了的cuda版本(cd /usr/local
,ls
):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)(显卡算力查询,可参考博主文章传送门)
参考
感谢大佬博主文章
博主安装步骤
重装虚拟环境(即3.8.5的python和cuda11.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的python和cuda11.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()
发现了大佬博主文章:传送门