{"id":13643095,"url":"https://github.com/uyzhang/yolov5_prune","last_synced_at":"2025-04-09T19:31:53.319Z","repository":{"id":37630053,"uuid":"445126507","full_name":"uyzhang/yolov5_prune","owner":"uyzhang","description":"YOLOv5 pruning on COCO Dataset","archived":false,"fork":false,"pushed_at":"2023-04-06T13:39:27.000Z","size":877,"stargazers_count":88,"open_issues_count":8,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-02T01:18:38.039Z","etag":null,"topics":["coco","prune","yolov5"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uyzhang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-06T10:18:04.000Z","updated_at":"2024-06-22T01:51:24.000Z","dependencies_parsed_at":"2024-01-14T12:17:50.101Z","dependency_job_id":"a737725e-b1fb-4003-bec3-282ba361a41e","html_url":"https://github.com/uyzhang/yolov5_prune","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyzhang%2Fyolov5_prune","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyzhang%2Fyolov5_prune/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyzhang%2Fyolov5_prune/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyzhang%2Fyolov5_prune/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uyzhang","download_url":"https://codeload.github.com/uyzhang/yolov5_prune/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223408316,"owners_count":17140671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coco","prune","yolov5"],"created_at":"2024-08-02T01:01:41.521Z","updated_at":"2024-11-06T20:19:18.249Z","avatar_url":"https://github.com/uyzhang.png","language":"Python","funding_links":[],"categories":["Lighter and Deployment Frameworks"],"sub_categories":[],"readme":"### Introduction\nClean code version of [YOLOv5](https://github.com/ultralytics/yolov5/)(V6) pruning.\n\nThe original code comes from : https://github.com/midasklr/yolov5prune.\n\n### Steps:\n1. Basic training\n    - In COCO Dataset\n        ```shell\n        python train.py --data coco.yaml --cfg yolov5s.yaml --weights '' --batch-size 32 --device 0 --epochs 300 --name coco --optimizer AdamW --data data/coco.yaml\n        ```\n2. Sparse training\n    - In COCO Dataset\n        ```shell\n        python train.py --batch 32 --epochs 50 --weights weights/yolov5s.pt --data data/coco.yaml --cfg models/yolov5s.yaml --name coco_sparsity --optimizer AdamW --bn_sparsity --sparsity_rate 0.00005 --device 0\n        ```\n\n3. Pruning\n    - In COCO Dataset\n        ```shell\n        python prune.py --percent 0.5 --weights runs/train/coco_sparsity13/weights/last.pt --data data/coco.yaml --cfg models/yolov5s.yaml --imgsz 640\n        ```\n\n4. Fine-tuning\n    - In COCO Dataset\n        ```shell\n        python train.py --img 640 --batch 32 --epochs 100 --weights runs/val/exp1/pruned_model.pt  --data data/coco.yaml --cfg models/yolov5s.yaml --name coco_ft --device 0 --optimizer AdamW --ft_pruned_model --hyp hyp.finetune_prune.yaml\n        ```\n### Experiments\n- Result of COCO Dataset\n    | exp\\_name        | model   | optim\u0026epoch | lr     | sparity | mAP@.5  | note                | prune threshold | BN weight distribution                                                           | Weight |\n    | ---------------- | ------- | ----------- | ------ | ------- | ------- | ------------------- | --------------- | -------------------------------------------------------------------------------- | ------------ |\n    | coco             | yolov5s | adamw 100   | 0.01   | \\-      | 0.5402  | \\-                  | \\-              | \\-                                                                               | - |\n    | coco2            | yolov5s | adamw 300   | 0.01   | \\-      | 0.5534  | \\-                  | \\-              | \\-                                                                               | [last.pt](https://github.com/uyzhang/yolov5_prune/releases/download/ckp/coco_adamw_300.pt)   |\n    | coco\\_sparsity   | yolov5s | adamw 50    | 0.0032 | 0.0001  | 0.4826  | resume official SGD | 0.54            | ![](https://docimg8.docs.qq.com/image/37lM2bxXOohzeYLQzhsU0g.png?w=1322\u0026h=826/)  | \\-           |\n    | coco\\_sparsity2  | yolov5s | adamw 50    | 0.0032 | 0.00005 | 0.50354 | resume official SGD | 0.48            | ![](https://docimg8.docs.qq.com/image/fsUuusfnXh0QqNIzBsQorA.png?w=1342\u0026h=822/)  | \\-           |\n    | coco\\_sparsity3  | yolov5s | adamw 50    | 0.0032 | 0.0005  | 0.39514 | resume official SGD | 0.576           | ![](https://docimg10.docs.qq.com/image/56lYy7Ig1U9aKtv3JoaVuw.png?w=1330\u0026h=864/) | \\-           |\n    | coco\\_sparsity4  | yolov5s | adamw 50    | 0.0032 | 0.001   | 0.34889 | resume official SGD | 0.576           | ![](https://docimg2.docs.qq.com/image/PoOcEBkq8k5yAHHuLMTX2w.png?w=1292\u0026h=852/)  | \\-           |\n    | coco\\_sparsity5  | yolov5s | adamw 50    | 0.0032 | 0.00001 | 0.52948 | resume official SGD | 0.579           | ![](https://docimg7.docs.qq.com/image/8sQYKDSEny6fE1-aD-i1PA.png?w=1308\u0026h=842/)  | \\-           |\n    | coco\\_sparsity6  | yolov5s | adamw 50    | 0.01   | 0.0005  | 0.51202 | resume coco         | 0.564           | ![](https://docimg2.docs.qq.com/image/mi5sH-NIcOfhCA5UvblkGQ.png?w=1314\u0026h=758/)  | \\-           |\n    | coco\\_sparsity10 | yolov5s | adamw 50    | 0.01   | 0.001   | 0.49504 | resume coco2        | 0.6             | ![](https://docimg10.docs.qq.com/image/IHpHc5QDZlH4qvX8C14-Uw.png?w=1326\u0026h=826/) | \\-           |\n    | coco\\_sparsity11 | yolov5s | adamw 50    | 0.01   | 0.0005  | 0.52609 | resume coco2        | 0.6             | ![](https://docimg8.docs.qq.com/image/txnqJ5L1PjO96e2DvMPuFQ.png?w=1320\u0026h=826/)  | \\-           |\n    | coco\\_sparsity13 | yolov5s | adamw 100   | 0.01   | 0.0005  | 0.533   | resume coco2        | 0.55            | ![](https://docimg2.docs.qq.com/image/Y0eW6Fg3GxQDNT0pUcHqZw.png?w=1314\u0026h=768/)  | [last.pt](https://github.com/uyzhang/yolov5_prune/releases/download/ckp/coco_sparsity13.pt)           |\n    | coco\\_sparsity14 | yolov5s | adamw 50    | 0.01   | 0.0007  | 0.515   | resume coco2        | 0.61            | ![](https://docimg7.docs.qq.com/image/uI9OFouJavwCSGAK8kk8vg.png?w=1312\u0026h=782/)  | \\-           |\n    | coco\\_sparsity15 | yolov5s | adamw 100   | 0.01   | 0.001   | 0.501   | resume coco2        | 0.54            | ![](https://docimg4.docs.qq.com/image/wyGMs5I4U_8vsXQLgG6LJg.png?w=1304\u0026h=820/)  | \\-           |\n\n- The model of pruning coco_sparsity13\n    | coco_sparsity13   | mAP@.5 | Params/FLOPs |\n    |-------------------|--------|--------------|\n    | origin            | 0.537  | 7.2M/16.5G   |\n    | after 10% prune   | 0.5327 | 6.2M/15.6G   |\n    | after 20% prune   | 0.5327 | 5.4M/14.7G   |\n    | after 30% prune   | 0.5324 | 4.4M/13.8G   |\n    | after 33% prune   | 0.5281 | 4.2M/13.6G   |\n    | after 34% prune   | 0.5243 | 4.18M/13.5G  |\n    | after 34.5% prune | 0.5203 | 4.14M/13.5G  |\n    | after 35% prune   | 0.2548 | 4.1M/13.4G   |\n    | after 38% prune   | 0.2018 | 3.88M/13.0G  |\n    | after 40% prune   | 0.1622 | 3.7M/12.7G   |\n    | after 42% prune   | 0.1194 | 3.6M/12.4G   |\n    | after 45% prune   | 0.0537 | 3.4M/12.0G   |\n    | after 50% prune   | 0.0032 | 3.1M/11.4G   |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuyzhang%2Fyolov5_prune","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuyzhang%2Fyolov5_prune","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuyzhang%2Fyolov5_prune/lists"}