一.安裝Linux
系統
由於用虛擬機軟件安裝的Linux
不能調用GPU
,因此這里采用雙系統(在Windows
的電腦上再安裝一個Linux
系統)
詳細安裝過程參考鏈接知乎:Win+Linux安裝
講一下遇到的幾個問題:
Rufus
檢測不到U盤,可以換一個U盤
試試
分配磁盤空間時,遇到C盤
不能擴展分區,可以用傲梅分區助手:下載地址
分區時注意分區所占用的物理磁盤名稱,會出現很多塊磁盤名稱注意區分,分為4
個區:
/boot
:主要用於引導系統正常啟動,可以設為1G
/
:根目錄 盡量大一些,這個應該最大,可以給/home
少一些,這個可以給200G
/home
:用戶目錄 盡量大一些,這個100G
差不多了swap
:交換空間,相當於windows的虛擬內存,可以設為和運行內存一樣大小8或16G
- 注意:安裝啟動引導器設備選擇/boot對應分區
- Linux的詳細分區介紹見博客園:Linux分區
華碩天選的開機進入U盤引導的按鍵是F2
,注意要在出現開機頁面(ASUS
字樣)的那一刻不停地按F2
即可
安裝完之后每次重啟會讓你選擇要進入的系統是Linux
還是Windows
,我這里不選的話默認進Linux
二.安裝NVIDIA
顯卡驅動
bash中
輸入nvidia-smi
如果出現我下面的截圖說明是安裝成功了,驅動版本是510.54,驅動對應的CUDA
版本號是11.6
如果沒有出現如上圖片,說明沒有安裝驅動,這里推薦最簡單的安裝驅動方法兩種:
-
軟件更新里面的附加驅動會推薦一些可用的驅動,點擊你想安裝的應用更改即可(我這里不行,應用更改和選擇驅動的按鈕是灰色的)
-
用命令行安裝:
具體參考:博客園:命令行安裝NVIDIA驅動
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換源
具體參考知乎: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地址
,然后輸入密碼即可連接成功
至此,環境配置完成,后面會用其來測試自己的數據集