Giter Club home page Giter Club logo

incremental-learning-mobile's Introduction

Incremental Learning in the Mobile Scenario

This is the main repository for the master's thesis Incremental Learning in the Mobile Scenario.

Experiment Results

Average incremental accuracy

New Classes / Step 1 2 5 10
iCaRL-ResNet* 44.20 50.60 53.79 58.08
iCaRL-MobileNetV2 23.45 39.40 43.90 50.15
BiC-ResNet* 47.09 48.96 53.21 56.86
BiC-MobileNetV2 36.54 36.57 41.43 45.25
PODNet-ResNet* 57.98 60.72 63.19 64.83
PODNet-MobilNetV2 60.44 63.30 66.36 68.70

* Results of ResNet-backbone models are reported directly from [Douillard et al. 2020].

Requirements and Pipeline

If conda is not installed yet, please install Miniconda or Anaconda first.

This pipeline was tested and run on Ubuntu and Windows WSL.

When you install the requirements on other OS, if you encounter ResolvePackageNotFound error, please first comment these packages in envrionment.yml and try again.

  1. Change the working directory to the root of the project directory.

    cd <your_project_dirctory>
  2. Setup the environment

    conda env create --name il_mobile --file environment.yml
  3. Activate the environment

    conda activate il_mobile
  4. Experiments on CIFAR-100

    • Run MobileNetV2 baseline

      python demo_baseline.py
    • Run PODNet using ResNet as backbone

      python3 -minclearn --options options/podnet/podnet_cnn_cifar100.yaml options/data/cifar100_3orders.yaml \
          --initial-increment 50 --increment 1 --fixed-memory \
          --device <GPU_ID> --label podnet_cnn_cifar100_50steps_resnet \
          --data-path <PATH/TO/DATA>
    • Run PODNet using MobileNetV2 as backbone

      python3 -minclearn --options options/podnet/podnet_cnn_cifar100_mobilenetv2.yaml options/data/cifar100_3orders.yaml \
          --initial-increment 50 --increment 1 --fixed-memory \
          --device <GPU_ID> --label podnet_cnn_cifar100_50steps_mobilenetv2 \
          --data-path <PATH/TO/DATA>
    • Run iCaRL or BiC, just change to corresponding --options and give a new --label

  5. Deactivate the environment

    conda deactivate
  6. [Optional] Delete the environment if you do not need it any more

    conda env list
    conda env remove --name il_mobile

Code

Some of the code are from their original repositories and adapted to our protocol. To get full look of the original repositories please check incremental_learning.pytorch and pytorch-cifar.

incremental-learning-mobile's People

Contributors

yuhouzhou avatar

Stargazers

 avatar

Watchers

 avatar

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.