Skip to content

Lsabetta/MIND

Repository files navigation

MIND

Authors: Jacopo Bonato, Francesco Pelosin, Luigi Sabetta, Alessandro Nicolosi

Preprint: https://arxiv.org/abs/2312.02916

Installation

  • Step 1:

    Build the docker image from the Dockerfile : docker build -f Dockerfile -t mind:1.0 .

  • Step 2:

    Run your image : docker run -it --gpus all -v "/path_to_dataset_folder":/root/data -v "/path_to_MIND_folder":/MIND mind:1.0 /bin/bash

Experiements

For each dataset we make available a bashscript (i.e. Cifar100_exp.sh) containing the parameters used to obtain the results reported in the paper. Each script will run 10 experiemnts with 10 different seeds.

Data Path setup

Before running everything, go to main.py and set the data path (line number 31) to the folder where you want to store the data. The data will be either downloaded automatically from continuum or needs to be downloaded there.

CIFAR100/10 (works out of the box)

To run the experiments on CIFAR100/10 dataset in class incremental (Table 1.A), run the following command:

sh cifar100_exp.sh

all the outputs will be logged in the ./logs/cifar100_experiment folder (accuracies, losses, plots) and in the terminal.


CORE50_CI/10 (requires setup)

Download the dataset and unzip it into your dataset folder (the folder that you have mounted into your docker image 'path_to_dataset_folder')

wget download the dataset from http://bias.csr.unibo.it/maltoni/download/core50/core50_128x128.zip
unzip core50_128x128.zip 
  • Step 1:

    Before running the experiments on core50 dataset, you need to resize the dataset and prepare it for continuum with the following command. NOTE: please read the script before running to understand how to set the paths:

    cd ./utils
    python resize_core50.py
    
  • Step 2:

    To run the experiments on CORE50/10 dataset in class incremental (Table 1.A), run:

    sh core50ci_exp.sh
    

    all the outputs will be logged in the ./logs/core_experiment folder (accuracies, losses, plots) and in the terminal.


TinyImgNet/10 (requires setup)

Download the dataset and unzip it intop your dataset folder.

wget http://cs231n.stanford.edu/tiny-imagenet-200.zip
unzip tiny-imagenet-200.zip

Then we need to prepare the folder structure to work with continuum as follows:

  • Step 1:

    cd ./utils
    python tiny_imgnet_setup.py --data_dir /path/to/data --dataset tiny-imagenet-200
    

    NOTE: please read the script before running to understand how it works

  • Step 2: To run the experiments (Table 1.A), run:

    sh tinyimgnet_exp.sh
    

    all the outputs will be logged in the ./logs/tinyimgnet_experiment folder (accuracies, losses, plots) and in the terminal.


Synbols (requires generation)

  • Setup 1 (outside our docker):

    In order to run the experiments on Synbols dataset, we need to generate the dataset first. To do so, we need to install the synbols package from the official repository.

  • Setup 2 (outside our docker):

    Then we can generate the dataset by running the notebook ./utils/generate_synbols.ipynb. The script will output two zip that you will put in your data folder. That's enough, the experiments will take care of everything.

  • Step 3 (inside our docker):

    To run the experiments (Table 1.A), run:

    sh synbols_exp.sh
    

    all the outputs will be logged in the ./logs/synbols_experiment folder (accuracies, losses, plots) and in the terminal.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published