yolov8-prune-network-slimming

A network slimming-based pruning method for YOLOv8.

https://github.com/ybai789/yolov8-prune-network-slimming

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (6.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A network slimming-based pruning method for YOLOv8.

Basic Info
  • Host: GitHub
  • Owner: ybai789
  • License: agpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 11 MB
Statistics
  • Stars: 32
  • Watchers: 1
  • Forks: 2
  • Open Issues: 6
  • Releases: 0
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Citation

README.md

Introduction

This repository provides a pruning method for YOLOv8, leveraging the network slimming approach.

It adapts the codebase of YOLOv8 version 8.1.33 to implement this method.

For an in-depth understanding of the underlying principles, it's recommended to consult the research paper titled "Learning Efficient Convolutional Networks through Network Slimming," available at https://arxiv.org/abs/1708.06519.

This method aims at enhancing the efficiency and performance of YOLOv8 by slimming down the network, aligning with the strategies outlined in the cited paper.

Installation

Clone the repository and rename the yolov8-prune-network-slimming directory to ultralytics.

``` cd ultralytics

pip install -e . ```

Steps

Within the ultralytics directory, execute the scripts provided below.

The parameters within these Python scripts can be adjusted according to your requirements.

  1. Basic training shell python train.py
  2. Sparse training shell python train_sparsity.py

  3. Pruning shell python prune.py

  4. Fine-tuning shell python finetune.py

    Experiments

    Result of YOLOv8s pruning on PASCAL VOC Dataset

| Description | mAP50 | mAP50-95 | Params/FLOPs | | --------------------------- | ----- | -------- | ------------ | | Original | 0.864 | 0.674 | 11.1M/28.5G | | Sparse Training | 0.856 | 0.658 | 11.1M/28.5G | | 30% Pruning and Fine-tuning | 0.858 | 0.665 | 6.2M/20.4G |

Owner

  • Login: ybai789
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with https://bit.ly/cffinit

cff-version: 1.2.0
title: Ultralytics YOLO
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Glenn
    family-names: Jocher
    affiliation: Ultralytics
    orcid: 'https://orcid.org/0000-0001-5950-6979'
  - given-names: Ayush
    family-names: Chaurasia
    affiliation: Ultralytics
    orcid: 'https://orcid.org/0000-0002-7603-6750'
  - family-names: Qiu
    given-names: Jing
    affiliation: Ultralytics
    orcid: 'https://orcid.org/0000-0003-3783-7069'
repository-code: 'https://github.com/ultralytics/ultralytics'
url: 'https://ultralytics.com'
license: AGPL-3.0
version: 8.0.0
date-released: '2023-01-10'

GitHub Events

Total
  • Issues event: 2
  • Watch event: 19
  • Fork event: 2
Last Year
  • Issues event: 2
  • Watch event: 19
  • Fork event: 2

Dependencies

.github/workflows/ci.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • codecov/codecov-action v4 composite
  • conda-incubator/setup-miniconda v3 composite
  • slackapi/slack-github-action v1.25.0 composite
.github/workflows/cla.yml actions
  • contributor-assistant/github-action v2.3.1 composite
.github/workflows/codeql.yaml actions
  • actions/checkout v4 composite
  • github/codeql-action/analyze v3 composite
  • github/codeql-action/init v3 composite
.github/workflows/docker.yaml actions
  • actions/checkout v4 composite
  • docker/login-action v3 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
  • nick-invision/retry v3 composite
  • slackapi/slack-github-action v1.25.0 composite
.github/workflows/format.yml actions
  • ultralytics/actions main composite
.github/workflows/greetings.yml actions
  • actions/first-interaction v1 composite
.github/workflows/links.yml actions
  • actions/checkout v4 composite
  • nick-invision/retry v3 composite
.github/workflows/publish.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • slackapi/slack-github-action v1.25.0 composite
.github/workflows/stale.yml actions
  • actions/stale v9 composite
examples/YOLOv8-ONNXRuntime-Rust/Cargo.toml cargo
docker/Dockerfile docker
  • pytorch/pytorch 2.2.0-cuda12.1-cudnn8-runtime build
pyproject.toml pypi
  • matplotlib >=3.3.0
  • opencv-python >=4.6.0
  • pandas >=1.1.4
  • pillow >=7.1.2
  • psutil *
  • py-cpuinfo *
  • pyyaml >=5.3.1
  • requests >=2.23.0
  • scipy >=1.4.1
  • seaborn >=0.11.0
  • thop >=0.1.1
  • torch >=1.8.0
  • torchvision >=0.9.0
  • tqdm >=4.64.0