# Train the classification head with clean samples:
CUDA_VISIBLE_DEVICES=0 python3 -m torch.distributed.launch --nproc_per_node=1 \
linear_eval.py \
--ngpu 1 \
--batch-size=512 \
--name=... \
--train_type='linear_eval' \
--dataset='cifar-10' \
--model='ResNet18' \
--seed=0 \
--load_checkpoint='checkpoint/...' \
--clean=True \
--lr=0.1 \
--epoch=150


# Train the classification head with adversarial samples only:
# remove the parameters with scatter_... to perform standard AT
CUDA_VISIBLE_DEVICES=0 python3 -m torch.distributed.launch --nproc_per_node=1 \
linear_eval.py \
--ngpu 1 \
--batch-size=512 \
--name=RoCL_scatter_cosine_0.25_only_scatterLoss_Linear \
--train_type='linear_eval' \
--dataset='cifar-10' \
--model='ResNet18' \
--seed=0 \
--load_checkpoint='checkpoint/...' \
--adv_img=True \
--lr=0.1 \
--epoch=150 \
--scatter \
--scatter_eps=2.5 \
--scatter_lp=cosine_150
