# for pretraining the model
# remove the parameters named scatter_... to not use the proposed scatter operation
CUDA_VISIBLE_DEVICES=0 python3 \
pre_train.py \
resnet18 \
cifar10 \
--name=... \
--moco_type=ACC \
--leverage=0.5 \
-T=0.2 \
-K1=32768 \
-K2=32768 \
--moco_mom=0.999 \
-b=256 \
--progress \
--epochs=1000 \
--learning_policy=cosine_1000 \
--scatter \
--scatter_eps=0.25 \
--scatter_learning_policy=cosine_1000 \
--scatter_w=0.5

# For linear training of the head with clean samples:
CUDA_VISIBLE_DEVICES=0 python3 \
linear_std.py \
resnet18 \
cifar10 \
--name=... \
--info_path=... \
-lp=FC \
--epochs=25 \
--progress

# For linear fine-tuning of the whole model with clean samples:
# use baseline for the info path, if you want to train a model from scratch
CUDA_VISIBLE_DEVICES=0 python3 \
linear_std.py \
resnet18 \
cifar10 \
--name=... \
--info_path=baseline \
-lp=TOTAL \
--epochs=40 \
--finetune \
--progress

# For robust linear training:
# remove the parameters named scatter_... to not use the proposed scatter operation
CUDA_VISIBLE_DEVICES=0 python3 \
linear_adv.py \
resnet18 \
cifar10 \
--name=... \
--info_path=... \
-lp=FC \
--epochs=25 \
--progress \
--scatter \
--scatter_eps=2.5 \
--scatter_learning_policy=cosine_25

# For robust finetuning of the whole model with adversarial samples:
# use baseline for the info path, if you want to train a model from scratch
# remove the parameters named scatter_... to not use the proposed scatter operation
CUDA_VISIBLE_DEVICES=0 python3 \
linear_adv.py \
resnet18 \
cifar10 \
--name=... \
--info_path=... \
-lp=TOTAL \
--epochs=40 \
--finetune \
--progress \
--scatter \
--scatter_eps=2.5 \
--scatter_learning_policy=cosine_40
