Linux系统下cuda11.2配置MMdetection

实验室服务器的cuda进行了一波更新,现在是cuda11.2。因此重新配置下环境。基本上所有环境都是围绕cuda版本进行的配置。(虽然不知道为什么)

因此现在是Ubuntu18.04+python3.8.13(据说python3.8好点 兼容性)+(torch1.10.1+cu111)+cuda11.2+cudnn8.1.0+mmdet 2.23.0+mmcv-full 1.4.0


目录

1、cuDNN的配置

2、conda环境建立 

3、pytorch安装

4、MMdet

5、(附录)移动anaconda、pycharm配置


1、cuDNN的配置

一开始只有cuda,没有对应的cudnn。

点这个链接进去下载对应cuda版本的cudnn:https://developer.nvidia.com/rdp/cudnn-downloadhttps://developer.nvidia.com/rdp/cudnn-download

Linux系统下cuda11.2配置MMdetection_第1张图片

选择这个下载。

下载完得到一个 

cudnn-11.2-linux-x64-v8.1.0.77.tgz

tar zxvf解压 得到 一个 cuda文件夹

接下来主要把cuda/include/cudnn.h和cuda/lib64/libcudnn*复制到cuda11.2的对应文件夹里面 

首先要看下环境配置里有没有cuda

sudo gedit ~/.bashrc

没有,那么加入 

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

save后,回到刚刚解压cudnn的目录(得到cuda文件夹的目录)

然后将解压得到的cuda里面关于cudnn的东西复制到cuda11-2文件夹对应目录理

注意新版本的cudnn跟老版本的不一样 老版本的include只需要复制一个cudnn.h 新版本需要*全部

sudo cp cuda/include/* /usr/local/cuda-11.2/include/
sudo cp cuda/lib64/* /usr/local/cuda-11.2/lib64/

然后添加可执行权限(?)

sudo chmod +x /usr/local/cuda-11.2/include/*
sudo chmod +x /usr/local/cuda-11.2/lib64/*

最后,验证cudnn

查看cuDNN版本的旧版本指令为cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A2,新版本有更新,将cuDNN版本信息单拉了一个文件名为cudnn_version.h,所以新版本查看cuDNN版本的命令为

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

得到结果

Linux系统下cuda11.2配置MMdetection_第2张图片

2、conda环境建立 

首先看conda的源:

conda config --show-sources

发现显示空白,说明没有对应的.condarc文件,那就先创建

conda config --set show_channel_urls yes

 然后编辑

vim ~/.condarc

注意,如果没有vim的话,先更新apt-get 然后用apt-get install

apt-get update
apt-get install vim

按i输入

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
ssl_verify: true

 按ESC键后Shift+ZZ保存退出。

3、pytorch安装

按照MMDET官网的安装步骤中,关于pytorch的安装很简单,但是会附加安装cuda11.3.

torch官方没有对应cuda11.2出一个版本,但是有对应cuda11.1版本的torch,无所谓。反正我的显卡能支持CUDA11.1就行(一般向下兼容)

pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/torch_stable.html

通过下列语句可以测试torch有没有正确安装:

python
import torch
print(torch.__version__)
print(torch.cuda.is_available())

4、MMdet

这里用git clone下载mmdetection包会超时,无奈只能电脑下载然后上传到服务器里

注意,我这里用的mmdet是2.23.0版本的,这个版本要求mmcv-full只能在1.3.17到1.5.0之间。因此正常情况下直接min install mmcv-full即可(默认下载最新版?反正给我下载了个1.6.1的,用不了),而我改用了mim install mmcv-full==1.4.0(实际上用pip也行)

pip install -U openmim
mim install mmcv-full==1.4.0
#mim install mmcv-full
git clone https://github.com/open-mmlab/mmdetection.git #这一步我直接上传了
cd mmdetection  #注意我的文件夹应该是mmdetection-master
pip install -v -e .

验证:

mim download mmdet --config yolov3_mobilenetv2_320_300e_coco --dest .
#下载一个checkpoint  
python demo/image_demo.py demo/demo.jpg yolov3_mobilenetv2_320_300e_coco.py yolov3_mobilenetv2_320_300e_coco_20210719_215349-d18dff72.pth --device cpu --out-file result.jpg

没有报错,并且看到一个图片文件result.jpg

Linux系统下cuda11.2配置MMdetection_第3张图片

5、(附录)移动anaconda、pycharm配置

因为服务器的anaconda默认在/root下,每次docker爆了就要重新搭配环境(anaconda会被重置)

你可能感兴趣的:(python,开发语言)