本文小編為大家詳細介紹“OneFlow怎么快速上手”,內容詳細,步驟清晰,細節處理妥當,希望這篇“OneFlow怎么快速上手”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
使用以下命令安裝 OneFlow 最新穩定版本:
python3
系統要求:
Python >= 3.5
Nvidia Linux x86_64 driver version >= 440.33
如果提示 找不到 對應版本,請嘗試升級 pip
:
python3 -m pip install --upgrade --user pip
安裝 OneFlow with legacy CUDA
支持其它較早版本 CUDA 的 OneFlow 的安裝方法如下:
python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu101 --user python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu100 --user python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu92 --user python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu91 --user python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu90 --user
從源碼編譯安裝 OneFlow
開始前,請確保您已正確安裝了oneflow,并且在python3環境下可以成功import oneflow。
git clone此倉庫到本地
git
2.安裝python依賴庫
pip install -r requirements.txt
3.在項目root目錄下,執行:
./scripts/build.sh
執行此腳本,將cpp代碼中自定義的op算子編譯成可調用執行的.so文件,您將在項目路徑下看到:
libdarknet.so
liboneflow_yolov3.so
我們使用了yolov3原作者提供的預訓練模型—yolov3.weight ,經轉換后生成了OneFlow格式的模型。下載預訓練模型:of_model_yolov3.zip ,并將解壓后的of_model文件夾放置在項目root目錄下,即可使用。
運行:
sh yolo_predict.sh
或者:
sh yolo_predict_python_data_preprocess.sh
運行腳本后,將在data/result下生成檢測后帶bbox標記框的圖片
參數說明 - --pretrained_model 預訓練模型路徑
--label_path coco類別標簽路徑(coco.name)
--input_dir 待檢測圖片文件夾路徑
--output_dir 檢測結構輸出路徑
--image_paths 單個/多個待檢測圖片路徑,如:
--image_paths 'data/images/000002.jpg' 'data/images/000004.jpg'
訓練同樣很簡單,準備好數據集后,只需要執行:sh yolo_train.sh
即可,數據集制作過程見下文【數據集制作】部分。
YoloV3支持任意目標檢測數據集,下面我們以COCO2014制作過程為例,介紹訓練/驗證所需的數據集制作,其它數據集如PASCAL VOC或自定義數據集等,都可以采用相同格式。
下載COCO2014訓練集和驗證集圖片,將解壓后的train2014和val2014放在data/COCO/images目錄下
(如果本地已下載過COCO2014數據集,可以ln軟鏈接images至本地train2014和val2014的父目錄)
準備資源文件:labels,5k.part,trainvalno5k.part
wget -c https://pjreddie.com/media/files/coco/5k.part wget -c https://pjreddie.com/media/files/coco/trainvalno5k.part wget -c https://pjreddie.com/media/files/coco/labels.tgz
腳本
在data/COCO目錄下執行腳本:
# get label file tar xzf labels.tgz # set up image list paste <(awk "{print \"$PWD\"}" <5k.part) 5k.part | tr -d '\t' > 5k.txt paste <(awk "{print \"$PWD\"}" <trainvalno5k.part) trainvalno5k.part | tr -d '\t' > trainvalno5k.txt # copy label txt to image dir find labels/train2014/ -name "*.txt" | xargs -i cp {} images/train2014/ find labels/val2014/ -name "*.txt" | xargs -i cp {} images/val2014/
執行腳本將自動解壓縮labels.tgz文件,并在當前目錄下生成5k.txt和trainvalno5k.txt,然后將labels/train2014和labels/val2014的的所有label txt文件復制到對應的訓練集和驗證集文件夾中( 保證圖片和label在同一目錄 )。
至此,完成整個數據集的準備過程。
修改yolo_train.sh腳本中的參數,令:--image_path_file="data/COCO/trainvalno5k.txt"并執行:
sh yolo_train.sh
即可開始訓練過程,更詳細的參數介紹如下:
--gpu_num_per_node 每臺機器使用的gpu數量
--batch_size batch 批大小
--base_lr 初始學習率
--classes 目標類別數量(COCO 80;VOC 20)
--model_save_dir 模型存放文件夾路徑
--dataset_dir 訓練/驗證集文件夾路徑
--num_epoch 迭代總輪數
--save_frequency 指定模型保存的epoch間隔
讀到這里,這篇“OneFlow怎么快速上手”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。