Open VincenDen opened 1 year ago
For Cifar100 ipc=50,he accuracy is just about 46%
try to increase model_train_steps, for example:
python3 -u IDM_cifar100.py --dataset CIFAR100 --model ConvNet --ipc 50 --dsa_strategy color_crop_cutout_flip_scale_rotate --init real --lr_img 0.2 --num_exp 5 --num_eval 5 --net_train_real --eval_interval 500 --outer_loop 1 --mismatch_lambda 0 --net_decay --embed_last 1000 --syn_ce --ce_weight 0.1 --train_net_num 1 --aug --model_train_steps 40
Sorry to bother you again, I use IDM_tiny.py --dataset TinyImageNet --model ConvNet --ipc 50 --dsa_strategy color_crop_cutout_flip_scale_rotate --init real --lr_img 0.2 --num_exp 5 --num_eval 5 --net_train_real --eval_interval 1000 --outer_loop 1 --mismatch_lambda 0 --net_decay --embed_last 1000 --syn_ce --ce_weight 0.8 --train_net_num 1 --aug --model_train_steps 50
, acc is just about 25%?
Larger synthetic set size often requires larger model_train_steps. You can try tuning it. Actually, 27.7% can be achieved even without augmentation. Use the hyper-parameters in the following command: python3 -u dm.model.optim.tiny.py --dataset TinyImageNet --model ConvNet --ipc 50 --dsa_strategy color_crop_cutout_flip_scale_rotate --init real --lr_img 0.2 --num_exp 5 --num_eval 5 --net_train_real --eval_interval 2000 --load_path None --outer_loop 1 --mismatch_lambda 0 --net_decay --perturbation_type weight --embed_last 1000 --syn_ce --ce_weight 0.1 --train_net_num 1
Sorry,I cannot find “dm.model.optim.tiny.py” file,and I don't seem to see any configuration information about "model_train_steps" in this command.
Here is the full hyperparameter:
{'method': 'DM', 'dataset': 'TinyImageNet', 'model': 'ConvNet', 'ipc': 50, 'eval_mode': 'S', 'num_exp': 5, 'num_eval': 5, 'epoch_eval_train': 1000, 'Iteration': 20000, 'lr_img': 0.2, 'lr_net': 0.01, 'batch_real': 256, 'batch_train': 256, 'init': 'real', 'dsa_strategy': 'color_crop_cutout_flip_scale_rotate', 'data_path': 'data', 'save_path': 'result', 'dis_metric': 'ours', 'outer_loop': 1, 'inner_loop': 1, 'eval_interval': 2000, 'net_train_real': True, 'load_path': 'None', 'trained_bs': 256, 'last': 100, 'mismatch_lambda': 0.0, 'net_decay': True, 'model_train_steps': 10, 'net_num': 100, 'net_begin': 0, 'net_end': 100000, 'mismatch_type': 'l1', 'ij_selection': 'random', 'weight_layer_index': 0, 'net_generate_interval': 30, 'fetch_net_num': 2, 'embed_last': 1000, 'perturbation_type': 'weight', 'conf_path': '', 'local_match': False, 'local_num': 10, 'local_weight': 0.1, 'center_reg': False, 'center_reg_weight': 0.01, 'syn_ce': True, 'ce_weight': 0.1, 'optim': 'sgd', 'train_net_num': 1, 'aug_num': 1, 'device': 'cuda', 'dsa_param': <dc_utils.ParamDiffAug object at 0x7f079416b400>, 'dsa': True}
I'm confused, you say "larger synthetic set size often requires larger model_train_steps", but here 'model_train_steps': 10
.
Augmentation will increase the synthetic size by 4 times. The above hyper-parameters are for non-aug setting, which can achieve 27.7%.
Hello, I am trying to replicate the performance presented in the paper, I face the same issue as VincenDen. The replicated performance is much higher than the reported '20.1±0.3' for CIFAR 100 ipc 1. I am using the command in command.txt, is there another setting that is used for the paper?
When I use thiscode to run with Cifar100 ipc=10, the accuracy is 3-4 percentage points higher than reported in the paper