Yolov-1-TX2上用YOLOv3訓練自己數據集的流程(VOC2007-TX2-GPU)
Yolov--2--一文全面瞭解深度學習性能優化加速引擎---TensorRT
Yolov--3--TensorRT中yolov3性能優化加速(基於caffe)
yolov--10--目標檢測模型的參數評估指標詳解、概念解析
yolov--11--YOLO v3的原版訓練記錄、mAP、AP、recall、precision、time等評價指標計算
yolov--12--YOLOv3的原理深度剖析和關鍵點講解
https://github.com/talebolano/yolov3-network-slimming
yolov3-network-slimming
將Learning Efficient Convolutional Networks Through Network Slimming (ICCV 2017)應用在yolov3和yolov2上
環境
- pytorch 0.41
- Linux
如何使用
1.對原始weights文件進行稀疏化訓練
python sparsity_train.py -sr --s 0.0001 --image_folder coco.data --cfg yolov3.cfg --weights yolov3.weights
2.剪枝
python prune.py --cfg yolov3.cfg --weights checkpoints/yolov3_sparsity_100.weights --percent 0.3
3.對剪枝後的weights進行微調
python sparsity_train.py --image_folder coco.data --cfg prune_yolov3.cfg --weights prune_yolov3.weights
關於new_prune.py
new_prune更新了算法,現在可以確保不會有某一層被減爲0的情況發生,參考RETHINKING THE SMALLER-NORM-LESSINFORMATIVE ASSUMPTION IN CHANNEL PRUNING OF CONVOLUTION LAYERS(ICLR 2018)對剪枝後bn層β係數進行了保留
待完成
coco測試
1、配置:
待定:
- cuda 8.0.61,
- cudnn7.0,
- opencv2.4.8,
- Linux系統版本:Ubuntu14.04,
- Python:2.7.6
- keras 2.1.1
- numpy 1.14.2
- tensorflow 1.0.0
- pip19.0.3,
- setuptools-36.6.0(更新後爲setuptools-40.8.0),
- cmake 3.5.1
- 硬盤:2T
- 內存:128G,緩衝區:64G
$ pip show numpy
Name: numpy
Version: 1.14.2
Summary: NumPy: array processing for numbers, strings, records, and objects.
Home-page: http://www.numpy.org
Author: NumPy Developers
Author-email: [email protected]
License: BSD
Location: /usr/local/lib/python2.7/dist-packages
conda list 的CPU配置如下:
2019-5-24:
2019-5-25:
2019-5-25-2:內存不足
異常一:
IndentationError: expected an indented block
- 把這段英文報錯翻譯過來就是: 縮進錯誤: 期望一個縮進的塊
縮進問題:縮進2個tab鍵即可
2019-5-27:
1.對原始weights文件進行稀疏化訓練
CUDA_VISIBLE_DEVICES=7 python sparsity_train.py -sr --s 0.0001 --image_folder coco.data --cfg yolov3.cfg --weights yolov3.weights 2>1 | tee visualization/sparsity-tarin-yolov3.log
2.剪枝
CUDA_VISIBLE_DEVICES=7 python prune.py --cfg yolov3.cfg --weights checkpoints/yolov3_sparsity_100.weights --percent 0.3
2019-5-28:
3.對剪枝後的weights進行微調
python sparsity_train.py --cfg prune_yolov3-80lei-111.cfg --weights checkpoints-4/prune_yolo v3_sparsity_416_0.0001_final_1_111.weights
2019-5-29:
測試單張圖片:
CUDA_VISIBLE_DEVICES=7 ./darknet detect cfg/prune_yolov3-80lei-111.cfg yolov3_sparsity_416_0.0001_final_1_442.weights data/dog.jpg
CUDA_VISIBLE_DEVICES=7 ./darknet detect cfg/prune_yolov3-111-80-0.5.cfg yolov3-network-slimming/yolo/checkpoints-2/prune_yolov3_sparsity_416_0.0001_final_1_111-0.5.weights data/dog.jpg
分段錯誤:.cfg文件有誤,需要更改
多GPU訓練原版--yolov3
CUDA_VISIBLE_DEVICES=7 ./darknet detector train cfg/voc-1.data cfg/yolov3-1.cfg -gpus 8,9
CUDA_VISIBLE_DEVICES=7 ./darknet detector train cfg/voc-1.data cfg/prune_yolov3-111-80-0.5.cfg yolov3-network-slimming/yolo/checkpoints-2/prune_yolov3_sparsity_416_0.0001_final_1_111-0.5.weights
修改.cfg的batch=32
subdivisions=16
2019-6-2:
稀疏化:
微調:
若加微信請備註下姓名_公司/學校,相遇即緣分,感謝您的支持,願真誠交流,共同進步,謝謝~