引言
之前寫過關於mmdetection的安裝和訓練,最近在另一臺服務器上重新配置環境,安裝mmdetection的時候,按照原來的博客安裝配置,出現了一些問題,特此來重新記錄一下安裝配置過程,也順便糾正一下之前博客中出現的問題,或者模糊不清的東西。
參考幾篇我自己之前寫的博客,這次這篇是一個大整合。
安裝Anaconda3
- 去官網下載相應的版本,下載完成後,得到一個shell腳本文件,執行該文件(文件名可能因爲版本不同有所差異):
bash Anaconda3-5.2.0-Linux-x86_64.sh
或者直接把下載地址拷貝下來,用wget下載(聽說會比較慢???)
wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
然後再執行上面的bash指令
-
進入安裝程序,提示輸入“ENTER”繼續
-
按回車後,進入用戶協議閱讀,再按回車,一直按,按到出現如下提示,輸入yes並回車
-
最後還有一個回答yes or no 的 ,是問你是否要init conda,選擇yes,就可以不用配環境了,不選擇的話,還得自己在.bashrc(如果你是root用戶,就是)裏面去配置anaconda3的環境,賊麻煩。
注:注意的是,這個回答,如果你沒選的話,會直接默認no,所以安裝到最後的時候,認真一點,記得回答yes,會省去很多麻煩 。 -
驗證: 輸入conda info,沒有說conda不是內部命令,就說明安裝好了。or 輸入python命令,出現anaconda的標識。
使用
除安裝即有的默認環境外,有時我們需要根據不同的項目使用不同的python版本。原生python如何切換版本?改環境變量、改軟連接,略麻煩。而使用Anaconda就能很方便得管理各種python環境。
例如,現在需要一個新的名爲“test”的python3.7環境,使用如下:
創建虛擬環境
輸入如下命令
conda create -n test python=3.7
離線斷網情況下,新建環境可加參數進行離線安裝:
conda create -n test python=3.7 --offline
切換虛擬環境
source activate test
# conda activate test
也可查看當前全部虛擬環境,選擇自己需要的環境進行切換,比如年紀大了忘了自己建的環境名是什麼的時候:
conda env list
安裝Pytorch
先創建一個虛擬環境open-mmlab
conda create -n open-mmlab python=3.7
切換虛擬環境
conda activate open-mmlab
然後就是安裝pytorch
推薦使用清華源
這裏就不羅嗦了。
我上面的博客,安裝的pytorch版本是1.1.0的版本,建議要修改,因爲1.1.0的版本,mmdetection就不能使用了。
使用下面的命令,pytorch的版本就會安裝成新版的,對應到你cuda版本就是10.版本的
conda install pytorch cudatoolkit=10.1 torchvision -c pytorch
如果cuda是9.2版本的,就是用下面命令
conda install pytorch=1.3.1 cudatoolkit=9.2 torchvision=0.4.2 -c pytorch
去掉-c pytorch
就是使用清華鏡像源的pytorch下載。
查看cuda版本:
cat /usr/local/cuda/version.txt
安裝mmdetection
v2版本的mmdetection要求torch版本爲1.3,那對應的cuda就得10.0
(9.2的版本不知道可不可以,沒試過,但是9.0的版本肯定不行(親測),如果使用cuda爲9.0的,torch的版本就必須降低,降低後去使用mmdetection會出錯,運行不了,解決思路就是升級cuda和torch,或者用v1版本的mmdetection)
這裏安裝的話,照着官網來就行了
具體安裝pytorch上面已經說清楚了,也可以直接去官網看。
拉取mmdetection資源庫
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
安裝構建要求,然後安裝mmdetection
pip install -r requirements/build.txt
pip install "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"
python setup.py develop #pip install -v -e .
不推薦使用(誰用誰後悔系列)
pip install -v -e .
這個命令使用的話,以後你在mmdetection的所有改動,都必須使用這個命令進行更改。
因爲使用這個命令,等於將mmdetection install 進了你的anaconda3的庫中,每次你跑mmdetection,用的代碼都是anaconda3 的“內置庫”了,那麼你每次修改完代碼,都得更新anaconda3中的mmdetection庫,不然你在本地如何修改代碼,訓練起來都不會奏效。具體可以去了解一下python的包管理(畢竟我覺得我自己解釋得不太官方)。
注:在我之前寫的博客中,也需要手動安裝mmcv,但是我安裝新的mmdetection的時候,github上並沒有安裝mmcv的命令,猜測應該是在安裝構建需求的時候安裝好了吧,我根據上面的安裝,是沒有問題。具體怎麼訓練,怎麼測試,新手的話,可以看看上面的博客。如果有問題,歡迎下面留言談論,互相學習。