dipamgoswami / FeCAM

Code for NeurIPS 2023 paper - FeCAM: Exploiting the Heterogeneity of Class Distributions in Exemplar-Free Continual Learning
MIT License
30 stars 5 forks source link

Performance reproduction #1

Closed EvaJF closed 11 months ago

EvaJF commented 11 months ago

Hello, I have tried to reproduce the results you show in your article on CIFAR100 by running the code of this repository. The code runs well, but the average incremental accuracy on CIFAR100 is significantly below the results showed in the paper. Here are the log files for two scenarios (50 classes + 5 tasks and 50 classes + 10 tasks on CIFAR100). I have used the example config files provided in the repo. repro_FeCAM_cifar100_B50_t5.o.log repro_FeCAM_cifar100_B50_t10.o.log If I understand well, FeCAM with 1 covariance matrix per class corresponds to "CNN top1" results in the logs. But when computing the average incremental accuracy (including the accuracy of the first state), I obtain around 60% instead of around 70% as in Table 1. Thanks in advance for your answer

dipamgoswami commented 11 months ago

Hi Eva, I just reproduced the results using the same code provided in this repository and I am able to obtain the same results mentioned in the paper for Cifar100. This is my log file: train_1993_resnet18.log

Also, to clarify, FeCAM with 1 covariance matrix per class corresponds to "MAHA top1" results in the logs. To avoid confusion, I now renamed it to "FeCAM top1".

Can you please check if you are using the exact same code given in this repo? Also make sure that you are not loading an incorrect covariance matrix from the first step. Right now, the code stores the covariance matrix after the first step in pickle files and then reload it in step 2. So, just delete the stored pickle file to make sure it has not saved wrong covariance matrices and it is not loading those matrices.

Let me know if you have any more questions.

EvaJF commented 11 months ago

Hello Dipam, thank you for your quick reply, it was indeed a covariance matrix problem! Sincerely Eva

dipamgoswami commented 11 months ago

Hello Eva, Thanks for the update. I also updated the code now, so that it does not store the matrix anymore.