Source code for attack.prototype

[docs]class NormalCase: r"""Normal training case (Train a clean model with clean data) basic structure: 1. config args, save_path, fix random seed 2. set the clean train data and clean test data 3. set the device, model, criterion, optimizer, training schedule. 4. train model 5. save the clean model .. code-block:: python normal_train_process = NormalCase() normal_train_process.attack() Args: num_workers (int): num_workers used in dataloader pin_memory (bool): dataloader pin_memory or not non_blocking (bool): move to GPU use non_blocking or not prefetch (bool): use prefetch or not (Still in test, default is False, not recommend) amp (bool): use amp or not device (str): device used for training lr_scheduler (str): lr scheduler used for training epochs (int): epochs for training dataset (str): which dataset is used for training dataset_path (str): where the dataset is (we add the default path of data folder after, so only need to provide the folder name) batch_size (int): batch size for training lr (float): learning rate for training steplr_stepsize (int): step size for steplr if use StepLR scheduler steplr_gamma (float): gamma for steplr if use StepLR scheduler sgd_momentum (float): momentum for optimizer wd (float): weight decay for optimizer steplr_milestones (list): milestones for steplr if use StepLR scheduler client_optimizer (int): which optimizer is used for training random_seed (int): random seed for training frequency_save (int): frequency to save the model, 0 is never model (str): which model is used for training attack_save_path (str): where to save the model yaml_path (str): yaml path for training settings """