# CIFAR10
## memory size 200
### Reproducing Co2L
python main.py --batch_size 512 --model resnet18 --dataset cifar10 --mem_size 200 --epochs 100 --start_epoch 500 --learning_rate 0.5 --temp 0.5 --current_temp 0.2 --past_temp 0.01  --cosine --syncBN --onlycurrent --trial 0
python main_linear_buffer.py --dataset cifar10 --learning_rate 1 --target_task 4 --ckpt ./save_None_random_200_onlycurrent/cifar10_models/cifar10_None_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_1.0_cosine_warm/ --logpt ./save_None_random_200_onlycurrent_cifar10/logs/cifar10_None_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_1.0_cosine_warm/;

### Reproducing Selective Distillation
python main.py --batch_size 512 --model resnet18 --dataset cifar10 --mem_size 200 --epochs 100 --start_epoch 500 --learning_rate 0.5 --temp 0.5 --current_temp 0.2 --past_temp 0.01  --cosine --syncBN --onlycurrent --emb_dim 128 --distill_type SD --selectiveness 1e-5 --distill_power 5 --trial 0;
python main_linear_buffer.py --dataset cifar10 --learning_rate 1 --target_task 4 --emb_dim 128 --ckpt ./save_SD_random_200_onlycurrent/cifar10_models/cifar10_SD_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_5.0_1e-05_cosine_warm/ --logpt ./save_SD_random_200_onlycurrent_cifar10/logs/cifar10_SD_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_5.0_1e-05_cosine_warm/;

### Reproducing Gradient Modulation
python main.py --batch_size 512 --model resnet18 --dataset cifar10 --mem_size 200 --epochs 100 --start_epoch 500 --learning_rate 0.5 --temp 0.5 --current_temp 0.2 --past_temp 0.01  --cosine --syncBN --onlycurrent --emb_dim 128 --reg_type GM --selectiveness 1e-5 --trial 0;
python main_linear_buffer.py --dataset cifar10 --learning_rate 1 --target_task 4 --emb_dim 128 --ckpt ./save_GM_random_200_onlycurrent/cifar10_models/cifar10_GM_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_1.0_1e-05_cosine_warm/ --logpt ./save_GM_random_200_onlycurrent_cifar10/logs/cifar10_GM_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_1.0_1e-05_cosine_warm/;

### Reproducing SD + GM
python main.py --batch_size 512 --model resnet18 --dataset cifar10 --mem_size 200 --epochs 100 --start_epoch 500 --learning_rate 0.5 --temp 0.5 --current_temp 0.2 --past_temp 0.01  --cosine --syncBN --onlycurrent --emb_dim 128 --distill_type SD --reg_type GM --selectiveness 1e-5 --distill_power 5 --trial 0;
python main_linear_buffer.py --dataset cifar10 --learning_rate 1 --target_task 4 --emb_dim 128 --ckpt ./save_SDGM_random_200_onlycurrent/cifar10_models/cifar10_SDGM_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_5.0_1e-05_cosine_warm/ --logpt ./save_SDGM_random_200_onlycurrent_cifar10/logs/cifar10_SDGM_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_5.0_1e-05_cosine_warm/;

## memory size 500
### Reproducing Co2L
python main.py --batch_size 512 --model resnet18 --dataset cifar10 --mem_size 500 --epochs 100 --start_epoch 500 --learning_rate 0.5 --temp 0.5 --current_temp 0.2 --past_temp 0.01  --cosine --syncBN --onlycurrent --trial 0
python main_linear_buffer.py --dataset cifar10 --learning_rate 1 --target_task 4 --ckpt ./save_None_random_500_onlycurrent/cifar10_models/cifar10_None_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_1.0_cosine_warm/ --logpt ./save_None_random_500_onlycurrent_cifar10/logs/cifar10_None_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_1.0_cosine_warm/;

### Reproducing Selective Distillation
python main.py --batch_size 512 --model resnet18 --dataset cifar10 --mem_size 500 --epochs 100 --start_epoch 500 --learning_rate 0.5 --temp 0.5 --current_temp 0.2 --past_temp 0.01  --cosine --syncBN --onlycurrent --emb_dim 128 --distill_type SD --selectiveness 1e-5 --distill_power 5 --trial 0;
python main_linear_buffer.py --dataset cifar10 --learning_rate 1 --target_task 4 --emb_dim 128 --ckpt ./save_SD_random_500_onlycurrent/cifar10_models/cifar10_SD_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_5.0_1e-05_cosine_warm/ --logpt ./save_SD_random_500_onlycurrent_cifar10/logs/cifar10_SD_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_5.0_1e-05_cosine_warm/;

### Reproducing Gradient Modulation
python main.py --batch_size 512 --model resnet18 --dataset cifar10 --mem_size 500 --epochs 100 --start_epoch 500 --learning_rate 0.5 --temp 0.5 --current_temp 0.2 --past_temp 0.01  --cosine --syncBN --onlycurrent --emb_dim 128 --reg_type GM --selectiveness 1e-5 --trial 0;
python main_linear_buffer.py --dataset cifar10 --learning_rate 1 --target_task 4 --emb_dim 128 --ckpt ./save_GM_random_500_onlycurrent/cifar10_models/cifar10_GM_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_1.0_1e-05_cosine_warm/ --logpt ./save_GM_random_500_onlycurrent_cifar10/logs/cifar10_GM_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_1.0_1e-05_cosine_warm/;

### Reproducing SD + GM
python main.py --batch_size 512 --model resnet18 --dataset cifar10 --mem_size 500 --epochs 100 --start_epoch 500 --learning_rate 0.5 --temp 0.5 --current_temp 0.2 --past_temp 0.01  --cosine --syncBN --onlycurrent --emb_dim 128 --distill_type SD --reg_type GM --selectiveness 1e-5 --distill_power 5 --trial 0;
python main_linear_buffer.py --dataset cifar10 --learning_rate 1 --target_task 4 --emb_dim 128 --ckpt ./save_SDGM_random_500_onlycurrent/cifar10_models/cifar10_SDGM_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_5.0_1e-05_cosine_warm/ --logpt ./save_SDGM_random_500_onlycurrent_cifar10/logs/cifar10_SDGM_32_resnet18_lr_0.5_decay_0.0001_bsz_512_temp_0.5_trial_0_500_100_0.2_0.01_5.0_1e-05_cosine_warm/;



# TinyImageNet
## memory size 200
### Reproducing Co2L
python main.py --batch_size 512 --model resnet18 --dataset tiny-imagenet --mem_size 200 --epochs 50 --start_epoch 500 --learning_rate 0.1 --temp 0.5 --current_temp 0.1 --past_temp 0.1 --cosine --syncBN --onlycurrent --distill_power 1.0 --emb_dim 128 --trial 0;
python main_linear_buffer.py --dataset tiny-imagenet --learning_rate 0.1 --target_task 9 --emb_dim 128 --ckpt ./save_None_random_200_onlycurrent/tiny-imagenet_models/tiny-imagenet_None_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_1.0_cosine_warm/ --logpt ./save_None_random_200_onlycurrent_tiny-imagenet/logs/tiny-imagenet_None_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_1.0_cosine_warm/;

### Reproducing SD
python main.py --batch_size 512 --model resnet18 --dataset tiny-imagenet --mem_size 200 --epochs 50 --start_epoch 500 --learning_rate 0.1 --temp 0.5 --current_temp 0.1 --past_temp 0.1 --cosine --syncBN --distill_type SD --onlycurrent --selectiveness 1e-5 --distill_power 5.0 --emb_dim 512 --trial 0;
python main_linear_buffer.py --dataset tiny-imagenet --learning_rate 0.1 --target_task 9 --emb_dim 512 --ckpt ./save_SD_random_200_onlycurrent/tiny-imagenet_models/tiny-imagenet_SD_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_5.0_1e-05_cosine_warm/ --logpt ./save_SD_random_200_onlycurrent_tiny-imagenet/logs/tiny-imagenet_SD_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_5.0_1e-05_cosine_warm/;

### Reproducing GM
python main.py --batch_size 512 --model resnet18 --dataset tiny-imagenet --mem_size 200 --epochs 50 --start_epoch 500 --learning_rate 0.1 --temp 0.5 --current_temp 0.1 --past_temp 0.1 --cosine --syncBN --reg_type GM --onlycurrent --selectiveness 1e-5 --distill_power 1.0 --emb_dim 512 --trial 0;
python main_linear_buffer.py --dataset tiny-imagenet --learning_rate 0.1 --target_task 9 --emb_dim 512 --ckpt ./save_GM_random_200_onlycurrent/tiny-imagenet_models/tiny-imagenet_GM_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_1.0_1e-05_cosine_warm/ --logpt ./save_GM_random_200_onlycurrent_tiny-imagenet/logs/tiny-imagenet_GM_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_1.0_1e-05_cosine_warm/;

### Reproducing SD + GM
python main.py --batch_size 512 --model resnet18 --dataset tiny-imagenet --mem_size 200 --epochs 50 --start_epoch 500 --learning_rate 0.1 --temp 0.5 --current_temp 0.1 --past_temp 0.1 --cosine --syncBN --distill_type SD --reg_type GM --onlycurrent --selectiveness 1e-5 --distill_power 5.0 --emb_dim 512 --trial 0;
python main_linear_buffer.py --dataset tiny-imagenet --learning_rate 0.1 --target_task 9 --emb_dim 512 --ckpt ./save_SDGM_random_200_onlycurrent/tiny-imagenet_models/tiny-imagenet_SDGM_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_5.0_1e-05_cosine_warm/ --logpt ./save_SDGM_random_200_onlycurrent_tiny-imagenet/logs/tiny-imagenet_SDGM_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_5.0_1e-05_cosine_warm/;

## memory size 500
### Reproducing Co2L
python main.py --batch_size 512 --model resnet18 --dataset tiny-imagenet --mem_size 500 --epochs 50 --start_epoch 500 --learning_rate 0.1 --temp 0.5 --current_temp 0.1 --past_temp 0.1 --cosine --syncBN --onlycurrent --distill_power 1.0 --emb_dim 128 --trial 0;
python main_linear_buffer.py --dataset tiny-imagenet --learning_rate 0.1 --target_task 9 --emb_dim 128 --ckpt ./save_None_random_500_onlycurrent/tiny-imagenet_models/tiny-imagenet_None_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_1.0_cosine_warm/ --logpt ./save_None_random_500_onlycurrent_tiny-imagenet/logs/tiny-imagenet_None_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_1.0_cosine_warm/;

### Reproducing SD
python main.py --batch_size 512 --model resnet18 --dataset tiny-imagenet --mem_size 500 --epochs 50 --start_epoch 500 --learning_rate 0.1 --temp 0.5 --current_temp 0.1 --past_temp 0.1 --cosine --syncBN --distill_type SD --onlycurrent --selectiveness 1e-5 --distill_power 5.0 --emb_dim 512 --trial 0;
python main_linear_buffer.py --dataset tiny-imagenet --learning_rate 0.1 --target_task 9 --emb_dim 512 --ckpt ./save_SD_random_500_onlycurrent/tiny-imagenet_models/tiny-imagenet_SD_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_5.0_1e-05_cosine_warm/ --logpt ./save_SD_random_500_onlycurrent_tiny-imagenet/logs/tiny-imagenet_SD_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_5.0_1e-05_cosine_warm/;

### Reproducing GM
python main.py --batch_size 512 --model resnet18 --dataset tiny-imagenet --mem_size 500 --epochs 50 --start_epoch 500 --learning_rate 0.1 --temp 0.5 --current_temp 0.1 --past_temp 0.1 --cosine --syncBN --reg_type GM --onlycurrent --selectiveness 1e-5 --distill_power 1.0 --emb_dim 512 --trial 0;
python main_linear_buffer.py --dataset tiny-imagenet --learning_rate 0.1 --target_task 9 --emb_dim 512 --ckpt ./save_GM_random_500_onlycurrent/tiny-imagenet_models/tiny-imagenet_GM_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_1.0_1e-05_cosine_warm/ --logpt ./save_GM_random_500_onlycurrent_tiny-imagenet/logs/tiny-imagenet_GM_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_1.0_1e-05_cosine_warm/;

### Reproducing SD + GM
python main.py --batch_size 512 --model resnet18 --dataset tiny-imagenet --mem_size 500 --epochs 50 --start_epoch 500 --learning_rate 0.1 --temp 0.5 --current_temp 0.1 --past_temp 0.1 --cosine --syncBN --distill_type SD --reg_type GM --onlycurrent --selectiveness 1e-5 --distill_power 5.0 --emb_dim 512 --trial 0;
python main_linear_buffer.py --dataset tiny-imagenet --learning_rate 0.1 --target_task 9 --emb_dim 512 --ckpt ./save_SDGM_random_500_onlycurrent/tiny-imagenet_models/tiny-imagenet_SDGM_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_5.0_1e-05_cosine_warm/ --logpt ./save_SDGM_random_500_onlycurrent_tiny-imagenet/logs/tiny-imagenet_SDGM_64_resnet18_lr_0.1_decay_0.0001_bsz_512_temp_0.5_trial_0_500_50_0.1_0.1_5.0_1e-05_cosine_warm/;


# RMNIST
## memory size 200
### Reproducing Co2L

### Reproducing SD
python main_domain.py --learning_rate 0.01 --temp 0.1 --current_temp 0.2 --past_temp 0.01 --n_task 20 --cosine --syncBN --mem_size 200 --start_epoch 100 --epochs 20 --batch_size 512 --distill_type SD --distill_power 5 --onlypast --trial 0;
python main_linear_buffer_domain.py --learning_rate 1 --ckpt save_domain_SD_random_200_onlypast/r-mnist_models/r-mnist_SD_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_5.0_1e-05_cosine --logpt save_domain_SD_random_200_onlypast_r-mnist/logs/r-mnist_SD_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_5.0_1e-05_cosine --target_task 19;

### Reporducing GM
python main_domain.py --learning_rate 0.01 --temp 0.1 --current_temp 0.2 --past_temp 0.01 --n_task 20 --cosine --syncBN --mem_size 200 --start_epoch 100 --epochs 20 --batch_size 512 --reg_type GM --onlycurrent --trial 0;
python main_linear_buffer_domain.py --learning_rate 1 --ckpt save_domain_GM_random_200_onlycurrent/r-mnist_models/r-mnist_GM_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_1.0_1e-05_cosine --logpt save_domain_GM_random_200_onlycurrent_r-mnist/logs/r-mnist_GM_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_1.0_1e-05_cosine --target_task 19;

### Reproducing SD + GM
python main_domain.py --learning_rate 0.01 --temp 0.1 --current_temp 0.2 --past_temp 0.01 --n_task 20 --cosine --syncBN --mem_size 200 --start_epoch 100 --epochs 20 --batch_size 512 --distill_type SD --reg_type GM --distill_power 5 --onlycurrent --trial 0;
python main_linear_buffer_domain.py --learning_rate 1 --ckpt save_domain_SDGM_random_200_onlycurrent/r-mnist_models/r-mnist_SDGM_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_5.0_1e-05_cosine --logpt save_domain_SDGM_random_200_onlycurrent_r-mnist/logs/r-mnist_SDGM_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_5.0_1e-05_cosine --target_task 19;

## memory size 500
### Reproducing Co2L
### Reproducing SD
python main_domain.py --learning_rate 0.01 --temp 0.1 --current_temp 0.2 --past_temp 0.01 --n_task 20 --cosine --syncBN --mem_size 500 --start_epoch 100 --epochs 20 --batch_size 512 --distill_type SD --distill_power 5 --onlypast --trial 0;
python main_linear_buffer_domain.py --learning_rate 1 --ckpt save_domain_SD_random_500_onlypast/r-mnist_models/r-mnist_SD_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_5.0_1e-05_cosine --logpt save_domain_SD_random_500_onlypast_r-mnist/logs/r-mnist_SD_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_5.0_1e-05_cosine --target_task 19;

### Reproducing GM
python main_domain.py --learning_rate 0.01 --temp 0.1 --current_temp 0.2 --past_temp 0.01 --n_task 20 --cosine --syncBN --mem_size 500 --start_epoch 100 --epochs 20 --batch_size 512 --reg_type GM --onlycurrent --trial 0;
python main_linear_buffer_domain.py --learning_rate 1 --ckpt save_domain_GM_random_500_onlycurrent/r-mnist_models/r-mnist_GM_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_1.0_1e-05_cosine --logpt save_domain_GM_random_500_onlycurrent_r-mnist/logs/r-mnist_GM_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_1.0_1e-05_cosine --target_task 19;

### Reproducing SD + GM
python main_domain.py --learning_rate 0.01 --temp 0.1 --current_temp 0.2 --past_temp 0.01 --n_task 20 --cosine --syncBN --mem_size 500 --start_epoch 100 --epochs 20 --batch_size 512 --distill_type SD --reg_type GM --distill_power 5 --onlycurrent --trial 0;
python main_linear_buffer_domain.py --learning_rate 1 --ckpt save_domain_SDGM_random_500_onlycurrent/r-mnist_models/r-mnist_SDGM_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_5.0_1e-05_cosine --logpt save_domain_SDGM_random_500_onlycurrent_r-mnist/logs/r-mnist_SDGM_28_mlp_lr_0.01_decay_0.0001_bsz_512_temp_0.1_trial_0_100_20_0.2_0.01_5.0_1e-05_cosine --target_task 19;