Git Product home page Git Product logo

cvpr19_incremental_learning's Introduction

CVPR19 Incremental Learning

Thi repository is for the paper "Learning a Unified Classifier Incrementally via Rebalancing".

[Paper] [Project Page]

Instructions

  1. Dependencies
    • Python 3.6 (Anaconda3 Recommended)
    • Pytorch 0.4.0
  2. Getting Started
    • the data for CIFAR100 and ImageNet are put in cifar100-class-incremental/data and imagenet-class-incremental/data, or you can make soft links to the directories which include the corresponding data
    • see cifar100-class-incremental/run.sh for the experiments on CIFAR100
    • see imagenet-class-incremental/run.sh for the experiments on ImageNet-Subset
    • see imagenet-class-incremental/run_all.sh for the experiments on ImageNet-Full

Citation

Please cite the following paper if you find this useful in your research:

@InProceedings{Hou_2019_CVPR,
author = {Hou, Saihui and Pan, Xinyu and Loy, Chen Change and Wang, Zilei and Lin, Dahua},
title = {Learning a Unified Classifier Incrementally via Rebalancing},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2019}
}

cvpr19_incremental_learning's People

Contributors

hshustc avatar piffnp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cvpr19_incremental_learning's Issues

Acctype = float]: block: [0,0,0], thread: [4,0,0] Assertion `t >= 0 && t < n_classes` failed.

bug information :

Epoch: 0, LR: [0.1]
Train set: 196, Train Loss: 3.4775 Acc: 9.5960
/opt/conda/conda-bld/pytorch_1556653215914/work/aten/src/THCUNN/ClassNLLCriterion.cu:105: void cunn_ClassNLLCriterion_updateOutput_kernel(Dtype *, Dtype *, Dtype *, long *, Dtype *, int, int, int, int, long) [with Dtype = float, Acctype = float]: block: [0,0,0], thread: [4,0,0] Assertion t >= 0 && t < n_classes failed.

I solved this by modified

tg_model = resnet_cifar.resnet32(num_classes=args.nb_cl_fg)

to

tg_model = resnet_cifar.resnet32(num_classes=args.num_classes)


I'm not sure if I am correct。????

Testing using saved model checkpoint only outputs `nb_cl_fg` units

Hi,

I was able to successfully trained the model and want to test it on a separate test set. However, when I load the saved checkpoint, the output layer only has nb_cl_fg units, instead of the total number of classes. I have a total of 114 classes and loading the saved model only outputs 40 units (my nb_cl_fg).

How will I be able to recover all 114 classes in the output? Thank you.

Question about 'class_means'

Hello, Thank you for your work.

cifar100-class-incremental/class_incremental_cosine_cifar100.py mentioned that the class_means[:,current_cl[iter_dico],0] is for iCaRL (mean of exemplars) and class_means[:,current_cl[iter_dico],1] is for NCM (theoretical mean).

But in cifar100-class-incremental/eval_cumul_acc.py, you use the class_means[:,current_cl[iter_dico],1] as the final result of your method, does it mean that you use all the historical exemplars to calculate the mean of the classes?

ImageNet-100 split

Can you please share the 'list of the class directories' used for the ImageNet-100 experiment. Or the original sequence in ImageNet-1000 which was used for sampling and shuffling.

Parameter questions

Could you tell me what is the '--nb_protos' meaning, i think each class should have a prototype, why the number is fixed here?

Changing the number of classes in first group

Hello,

I want to change the number of classes in first group. Use cifar100, let the number of classes in first group is 10, and then train the 90 classes in the incremental way. Can I just modify the '--nb_cl_fg' in the argparse, or need to do something else?

Thank you.

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.