Home

Awesome

Unlearnable Clusters: Towards Label-agnostic Unlearnable Examples

Code relative to "Unlearnable Clusters: Towards Label-agnostic Unlearnable Examples", CVPR2023.

Preprocess

First, run preprocess.py to rename the dataset directory

python preprocess.py --config config/preprocess.yaml -f rename

K-means initial

Second, run preprocess.py to conduct K-means initial.

python preprocess.py --config config/preprocess.yaml -f cluster_pets_rn50_cluster10
# the cluster file will be stored in {output_dir}/{dataset}_{surrogate_model}_cluster{num_clusters}.pth
# e.g., output/cluster/pets_rn50_cluster10.pth

Genearte the cluster-wise perturbations and the corresponding UEs

Third, run main.py --stage 1 to generate cluster-wise perturbations.

python main.py --config config/stage_1.yaml -e {experiment} --stage 1 
# {experiment} is uc_{dataset}_{surrogate_model}
# e.g., python main.py --config config/stage_1.yaml -e uc_pets_cliprn50 --stage 1

Train target model

Finally, run main.py --stage 2 to train target models.

python main.py --config config/stage_2.yaml -e {experiment} --stage 2 
# {experiment} is uc_{dataset}_{surrogate_model}_{target_model}
# e.g., python main.py --config config/stage_2.yaml -e uc_pets_rn50_rn18 --stage 2

Citation

If you find this code to be useful for your research, please consider citing.

@inproceedings{zhang2023unlearnable,
  title={Unlearnable Clusters: Towards Label-agnostic Unlearnable Examples},
  author={Jiaming Zhang, Xingjun Ma, Qi Yi, Jitao Sang, Yu-Gang Jiang, Yaowei Wang, Changsheng Xu},
  booktitle="Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition",
  year={2023}
}