一.安装Linux
系统
由于用虚拟机软件安装的Linux
不能调用GPU
,因此这里采用双系统(在Windows
的电脑上再安装一个Linux
系统)
讲一下遇到的几个问题:
Rufus
检测不到U盘,可以换一个U盘
试试
分配磁盘空间时,遇到C盘
不能扩展分区,
分区时注意分区所占用的物理磁盘名称,会出现很多块磁盘名称注意区分,分为4
个区:
-
/boot
:主要用于引导系统正常启动,可以设为1G
-
/
:根目录 尽量大一些,这个应该最大,可以给/home
少一些,这个可以给200G
-
/home
:用户目录 尽量大一些,这个100G
差不多了 -
swap
:交换空间,相当于windows的虚拟内存,可以设为和运行内存一样大小8或16G
- 注意:安装启动引导器设备选择/boot对应分区
华硕天选的开机进入U盘引导的按键是F2
,注意要在出现开机页面(ASUS
字样)的那一刻不停地按F2
即可
安装完之后每次重启会让你选择要进入的系统是Linux
还是Windows
,我这里不选的话默认进Linux
二.安装NVIDIA
显卡驱动
bash中
输入nvidia-smi
如果出现我下面的截图说明是安装成功了,驱动版本是510.54,驱动对应的CUDA
版本号是11.6
如果没有出现如上图片,说明没有安装驱动,这里推荐最简单的安装驱动方法两种:
- 软件更新里面的附加驱动会推荐一些可用的驱动,点击你想安装的应用更改即可(我这里不行,应用更改和选择驱动的按钮是灰色的)
- 用命令行安装:
ubuntu-drivers devices
# 查询所有ubuntu推荐的驱动,我的输出如下
driver : nvidia-driver-450-server - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-510 - distro non-free
driver : nvidia-driver-510-server - distro non-free
driver : nvidia-driver-470 - distro non-free recommended
driver : xserver-xorg-video-nouveau - distro free builtin
sudo apt install nvidia-driver-510
# 安装其中一个你想要的版本即可,我这里安装的是510
执行完毕之后重启一下
还有网上别人推荐的第三种方法,极其复杂,我觉着第二种最好,可以成功且很方便,安装好之后用前面的命令测试一下即可。
三.Linux安装CUDA和CUDNN
CUDA
有driver api 和 runtime api,我理解的runtime api是真正用cuda做运算时用到的版本,我们上面用
nvidia-smi查到的是 driver api,而下载安装的CUDA是 runtime api,查询是否安装CUDA的runtime api用命令
nvcc -V`:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Tue_Sep_15_19:10:02_PDT_2020
Cuda compilation tools, release 11.1, V11.1.74
Build cuda_11.1.TC455_06.29069683_0
我是安装过的,如果没安装不会出现上面的输出。这个版本是11.1和之前的不同,原因可以参考简书:CUDA两个版本的不同 注意安装过程中,安装号CUDA后修改环境变量时按照下面来修改:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
# export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
# 非常重要!!!就这一个导致后面的mmdetection安装mmcv-full时安装一直报错!!!
export CUDA_HOME=/usr/local/cuda
四.安装mmdetection2.8
安装Minianaconda
- 下载:
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
- 运行:
bash Miniconda3-latest-Linux-x86_64.sh
- 按住ctrl+c可以跳过阅读,后面一直同意即可
- 安装好之后,打开bash输入conda env list进行测试又没有安装成,我的直接成了,如果没成可能需要配置一下环境变量,自己百度
创建虚拟环境
-
conda create -n mmd python=3.8
# mmd是环境名 -
conda remove -n mmd --all
# 是删除虚拟环境
conda换源
vim ~/.condarc
- 添加参考链接中的相应命令
工具弄好之后开始正式安装mmdetection
安装pytorch的GPU版本
去pytorch官网上找安装命令,注意pytorch
版本要与你的CUDA
的runtime
版本一直,也就是nvcc -V
版本一致,我这里是11.1,因此安装命令是:pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
如果上面安装报证书错误(There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘**.org‘,port=443)用下面的命令:
pip install --trusted-host download.pytorch.org torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
一定注意版本别搞错了,推荐的一套版本是
- CUDA 11.1
- torch 1.9.0
- torchvision 0.10.0
- torchaudio 0.9.0
安装mmcv-full
这里建议直接把mmcv
的github
库克隆下来:
git clone https://github.com/open-mmlab/mmcv.git
# 会自动把内容放到mmcv文件夹
cd mmcv
# MMCV_WITH_OPS=1是安装mmcv-full,否则是安装mmcv,这里mmdetection2.8需要mmcv-full
MMCV_WITH_OPS=1 pip install -e . # package mmcv-full will be installed after this step
不过安装完的是1.4.7的最新版本,与mmdetection2.8要求的版本不符合,此时可以执行
pip install mmcv-full==1.2.4
安装1.2.4版本
也可以用命令
pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
进行安装,还是一定注意CUDA版本号和pytorch,torchvision等对应,CUDA环境变量别弄错了!!!
安装mmcv-full时出了很多错误,总结一下,感慨一下:
- 首先是
CUDA
版本和torch
版本要一致,建议CUDA
版本别太高,不然torch
版本没那么高的 - 安装
CUDA
时,CUDA_HOME
的环境要写对,我之前按照别人写的的多加了一个冒号,结果就出现在这个冒号身上 - 执行到
Running setup.py develop for mmcv-full
时可能会卡一会,不用担心 - 如果报错了也别直接复制最后一行去百度,可以向前翻翻错误的地方,找到可能是关键的地方再百度
安装mmdetection2.8
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -r requirements/build.txt
pip install -v -e . # or "python setup.py develop"
测试
执行官方给的测试命令即可:
新建一个test.py
文件在mmdetection
文件夹中,下载给定的网络权重方放到mmdetection
的checkpoints
文件夹中(新建)中
from mmdet.apis import init_detector, inference_detector
config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py'
# download the checkpoint from model zoo and put it in `checkpoints/`
# url: http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'
device = 'cuda:0'
# init a detector
model = init_detector(config_file, checkpoint_file, device=device)
# inference the demo image
inference_detector(model, 'demo/demo.jpg')
如果正常执行就OK
了,我的报了两个警告,不过结果正确,先不管了
五.Vscode
远程操控Linux
其实可以在一台有GPU
的电脑上,Linux
系统安装mmdetection
,另一台只有cpu
的Windows
的电脑远程操控,比如弄一个有GPU
的台式机在家,拿一个轻薄本,就可以远程操控台式机进行训练。
下面是在Linux系统的主机上运行的:
- 安装 net-tools 工具:
sudo apt-get install net-tools
,如果失败,可能是软件源没有更新 -
sudo apt-get update
更新源再试试 -
ifconfig
查看ip地址 - 安装openssh-server工具,
sudo apt-get install openssh-server
下面是在Windows主机上进行的操作
- 安装vscode(百度即可)
- vscode中安装ssh插件,插件商店直接搜索ssh即可出现
- 打开cmd,
ping 刚才查到的IP地址
,如果能ping通说明可以连接 - cmd中输入
ssh 主机用户名@主机IP地址
如果失败了,可能是主机中没有安装openssh-server服务,在主机上安装即可:sudo apt-get install openssh-server
- cmd中输入
ssh 主机用户名@主机IP地址
,输入主机用户密码即可 - vscode中找到远程连接小图标,输入
ssh 主机用户名@主机IP地址
,然后输入密码即可连接成功
至此,环境配置完成,后面会用其来测试自己的数据集