Giter Club home page Giter Club logo

lcrm's Introduction

LCRM: Layer-wise Complexity Reduction Method for CNN Model Optimization on End Devices

This repository contains Python notebooks with code for optimizing AlexNet, VGG, and U-Net neural networks using the LCRM optimization method based on our research work "LCRM: Layer-wise Complexity Reduction Method for CNN Model Optimization on End Devices, IEEE Access, 2023 ". We also include the source code for the ablation study to demonstrate the effectiveness of the optimization method and an appendix section with additional code examples.

Getting Started

To get started, first clone this repository: git clone https://github.com/han-an/LCRM.git

Prerequisites

The code in this repository requires Python 3.6 or later and the following packages:

  • Tensorflow-gpu >2.0
  • NumPy
  • Matplotlib
  • TensorBoard (Profiler plugin)

Required packages are given at the beginning of each notebook.

Datasets

  • EMNIST used in LCRM-VGG
  • CIFAR from tensorflow dataset used in LCRM-AlexNet
  • Kaggle datascience Bowl dataset used in LCRM-UNet

Usage

To use the optimization method, open the appropriate Python notebook for the network you want to optimize (e.g., LCRMVGG9.ipynb or LCRMUnet.ipynb). Run the notebook cells in order to train the model with the optimization method. We have included both the parent model and the LCRM-generated model for comparison.

Ablation Study

The code and results for ablation study are presented in the ablation_study.ipynb notebook.

Appendix

The appendix Python notebook contains code examples for using the optimization method with other set of convolutions exist in the literature: The substitution layers studied include standard convolution (Std Conv), transpose convolution (TrC), Groupwise convolution (GrC), depthwise convolution (DWC), pointwise convolution (PWC), and dilated convolution (DiC) and their combinations for checking the number of parameters.

Reference

A portion of U-Net parent model code is referred from https://github.com/bnsreenu/python_for_microscopists.

lcrm's People

Contributors

hana-an avatar 21praveen avatar

Watchers

 avatar  avatar

Forkers

brightlord5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.