fanq15/FSOD-code的環境配置及運行
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
最近在搞小樣本目標檢測,看到這個代碼就扒下來看看
對應的論文地址Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
文章目錄
- fanq15/FSOD-code的環境配置及運行
- Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
- 前言
- 一、代碼下載
- 二、將資料集和預訓練模型拷貝到相應目錄下
- 1.目錄的樹形結構:
- 2.拷入資料集和預訓練模型
- 三、環境要求
- 1.需要的包
- 2.編譯CUDA代碼
- 四、代碼運行
- 1.跟據不同機器的GPU數量修改根目錄下的all.sh
- 2.已經訓練過模型,僅測驗
- 3.運行
前言
本文是我自己在ubuntu16.04LTS下成功的運行
fanq15/FSOD-code
代碼的經歷以及經驗
一、代碼下載
首先,查看你的系統是否已安裝git,已經安裝的跳過此步,
通過“git“指令進行查看,若未,安裝在終端中輸入:
sudo apt-get install git
配置好后,在你想要下載代碼的目錄下打開終端(如果你不嫌煩的話也可以cd過去)并輸入
git clone https://github.com/fanq15/FSOD-code.git
完成后,在對應的目錄下應該已經出現克隆好的檔案夾,如下圖選中部分,

檔案夾中內容:

注意,資料集和預訓練模型需要單獨下載,資料集大小約為15G左右,預訓練模型為265M注意目錄的剩余空間!
預訓練模型在其github介紹下已給出預訓練模型
二、將資料集和預訓練模型拷貝到相應目錄下
1.目錄的樹形結構:

2.拷入資料集和預訓練模型
模型檔案拷到fsod下,預訓練模型拷到pretrain_model下



拷入前對應目錄下有用來占位的連接檔案,無視洗掉掉就行
三、環境要求
需要裝有英偉達顯卡的機器,且已經安裝了CUDA 9.0(只能是9.0其他版本不行),我的機器是GTX1060(6G),驅動版本是384.130
1.需要的包
建議用anaconda新建一個虛擬環境來配置
可以用conda或者pip下載,速度慢的話換國內源,

2.編譯CUDA代碼
進入lib目錄,右鍵”在終端打開“
如果你是在anaconda下配置的上面所說的環境,比如我創建的環境名為FSOD,則首先進入環境,在終端中輸入
conda activate FSOD
并執行make.sh
sh make.sh
如果提示無權限,則在終端輸入下面命令后再運行,
sudo chmod 755 make.sh

四、代碼運行
1.跟據不同機器的GPU數量修改根目錄下的all.sh
如果你恰好財力雄厚,機器擁有四塊GPU,則可以跳過這步


高亮部分為模型訓練指令,下半部分為模型測驗指令,
比如我的機器只有一個GPU,則將
CUDA_VISIBLE_DEVICES=0,1,2,3 這里改為CUDA_VISIBLE_DEVICES=0
并將
- -bs 4改為 - -bs 1
如果你有兩個及以上的GPU則不用修改下半部分,如果是單GPU機器,則:
將- -multi-gpu-testing 刪掉
2.已經訓練過模型,僅測驗
可以將上圖的高亮部分洗掉掉,訓練好的模型保存在根目錄下的Outputs檔案夾中

訓練引數可以在FSOD/configs/fsod/下的voc_e2e_faster_rcnn_R-50-C4_1x_old_1.yaml中修改(默認迭代次數為240000,沒錯24萬,在我這小破游戲本上得跑到猴年馬月去,,,)

3.運行
在FSOD-code即代碼根目錄下,右鍵“在終端打開”,執行
conda activate "你的環境名“
sudo chmod 755 all.sh
sh all.sh

可以看到,已經開始訓練了,一般訓練到四五百次的時候,準確率就在90%左右浮動了,你可以ctrl+c/z中途終止訓練,模型也是會保存到Outputs檔案夾中的,
訓練時你可以新開一個終端,輸入
watch -n 1 nvidia-smi
來監視GPU狀態,上面命令的 -n 1意思是每1秒重繪一次,你也可以自己更改重繪時間比如-n 5 、-n 10等

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/229865.html
標籤:python
