Darknet is an open source neural network framework written in C and CUDA. It is fast, easy to install, and supports CPU and GPU computation.
This repository is borrowed heavily from https://github.com/pjreddie/darknet and https://github.com/AlexeyAB/darknet
- shufflenetv2: channel_shuffle layer and channel_slice layer are added in this repo.
- yolov3 slimming: prune.cpp is added.
- shufflenev2: for example basic unit
-
yolov3 slimming
Support: yolov3-tiny, yolov3, yolov3-spp
./darknet prune ./cfg/yolov3.cfg ./cfg/yolov3.weights -rate 0.3
the pruned cfg/weights are saved as ./cfg/yolov3_prune.cfg ./cfg/yolov3_prune.weights
- shufflenetv2
Top1: 0.52 Top5: 0.75
shuffle_imagenet.cfg : shuffle_imagenet.cfg.txt shuffle_imagenet.weights: google driver OR baidu pan (2eyp)
- yolov3 slimming(coco)
yolov3 | volume(MB) | FLOPS | Map(coco_val5k @0.5) | finetuning iters | parameters |
---|---|---|---|---|---|
before pruned | 246 | 65 | 54.65 | 500k | 1x |
pruned @prune_rate=0.3 | 122 | 36.3 | 48.1 | 80k | 0.5x |
pruned @prune_rate=0.5 | 60.5 | 16 | 49.2 | 160k | 0.25x |
pruned @prune_rate=0.7 | 31 | 8.2 | 46 | 200k | 0.125x |
tiny-yolov3(official) | 36 | 5.5 | 17.3 | ||
tiny-yolov3_3l | 38 | 9.1 | 32 |
- speed test(experiment on 1080Ti)
yolov3 | volume(MB) | FLOPS | FPS(352x 288) | FPS(960 x 540) | FPS(1960 x 1080) |
---|---|---|---|---|---|
before pruned | 246 | 65 | 60 | 57 | 53 |
pruned @prune_rate=0.3 | 122 | 36.3 | 82 | 78 | 76 |
pruned @prune_rate=0.5 | 60.5 | 16 | 107 | 105 | 97 |
pruned @prune_rate=0.7 | 31 | 8.2 | 130 | 123 | 120 |
- speed test(experiment on XiaoMI laptop (Intel(R)Core(TM)i5-8250U [email protected]))
yolov3 | volume(MB) | FLOPS | Inference Time |
---|---|---|---|
before pruned | 246 | 65 | 436ms |
pruned @prune_rate=0.3 | 122 | 36.3 | 230ms |
pruned @prune_rate=0.5 | 60.5 | 16 | 125ms |
pruned @prune_rate=0.7 | 31 | 8.2 | 70ms |
- download links to pruned cfgs/models
pruned @prune_rate=0.3: cfg(google driver),weight(google driver) OR cfg(baidupan)(s846),weight(baidupan)(eswd)
pruned @prune_rate=0.5: cfg(google driver),weight(google driver) OR cfg(baidupan)(y9gk), weight(baidupan)(5eqt)
pruned @prune_rate=0.7: cfg(google driver),weight(google driver) OR cfg(baidupan)(xh1d), weight(baidupan)(ump7)