yulu0724 / SDC-IL

Semantic Drift Compensation for Class-Incremental Learning (CVPR2020)
115 stars 34 forks source link

trained SDC-EWC on cifar100 #1

Closed wangjl1993 closed 4 years ago

wangjl1993 commented 4 years ago

Hi, yulu. I use the code in python3.7&pytorch1.3. Just change something here: in train.py :
running_loss += loss.item() # line231 running_lwf += loss_aug.item() num_class_per_task = (num_classes-args.base)//(num_task-1) # line 420

in triplet_no_hard_mining.py: dist_p = torch.mean(dist_ap).item() # line 41 dist_n = torch.mean(dist_an).item()

It run already, but get a bad acc. image the totle loss didnt decrease and the acc didnt increase when training. image

Thx~

wangjl1993 commented 4 years ago

Test starting --> Test 0 Accuracy of Model 0 on Task 0 is 0.211 Weighted Accuracy of Model 0 is 0.211 Test 1 Accuracy of Model 1 on Task 0 is 0.176 Accuracy of Model 1 on Task 1 is 0.182 Weighted Accuracy of Model 1 is 0.177 Test 2 Accuracy of Model 2 on Task 0 is 0.125 Accuracy of Model 2 on Task 1 is 0.158 Accuracy of Model 2 on Task 2 is 0.370 Weighted Accuracy of Model 2 is 0.148 Test 3 Accuracy of Model 3 on Task 0 is 0.085 Accuracy of Model 3 on Task 1 is 0.112 Accuracy of Model 3 on Task 2 is 0.324 Accuracy of Model 3 on Task 3 is 0.430 Weighted Accuracy of Model 3 is 0.132 Test 4 Accuracy of Model 4 on Task 0 is 0.051 Accuracy of Model 4 on Task 1 is 0.062 Accuracy of Model 4 on Task 2 is 0.252 Accuracy of Model 4 on Task 3 is 0.406 Accuracy of Model 4 on Task 4 is 0.456 Weighted Accuracy of Model 4 is 0.121 Test 5 Accuracy of Model 5 on Task 0 is 0.031 Accuracy of Model 5 on Task 1 is 0.022 Accuracy of Model 5 on Task 2 is 0.176 Accuracy of Model 5 on Task 3 is 0.286 Accuracy of Model 5 on Task 4 is 0.428 Accuracy of Model 5 on Task 5 is 0.412 Weighted Accuracy of Model 5 is 0.109 Test 6 Accuracy of Model 6 on Task 0 is 0.018 Accuracy of Model 6 on Task 1 is 0.006 Accuracy of Model 6 on Task 2 is 0.094 Accuracy of Model 6 on Task 3 is 0.214 Accuracy of Model 6 on Task 4 is 0.376 Accuracy of Model 6 on Task 5 is 0.358 Accuracy of Model 6 on Task 6 is 0.376 Weighted Accuracy of Model 6 is 0.101 Test 7 Accuracy of Model 7 on Task 0 is 0.013 Accuracy of Model 7 on Task 1 is 0.000 Accuracy of Model 7 on Task 2 is 0.062 Accuracy of Model 7 on Task 3 is 0.160 Accuracy of Model 7 on Task 4 is 0.340 Accuracy of Model 7 on Task 5 is 0.308 Accuracy of Model 7 on Task 6 is 0.266 Accuracy of Model 7 on Task 7 is 0.382 Weighted Accuracy of Model 7 is 0.097 Test 8 Accuracy of Model 8 on Task 0 is 0.009 Accuracy of Model 8 on Task 1 is 0.000 Accuracy of Model 8 on Task 2 is 0.032 Accuracy of Model 8 on Task 3 is 0.134 Accuracy of Model 8 on Task 4 is 0.228 Accuracy of Model 8 on Task 5 is 0.280 Accuracy of Model 8 on Task 6 is 0.174 Accuracy of Model 8 on Task 7 is 0.332 Accuracy of Model 8 on Task 8 is 0.428 Weighted Accuracy of Model 8 is 0.094 Test 9 Accuracy of Model 9 on Task 0 is 0.007 Accuracy of Model 9 on Task 1 is 0.000 Accuracy of Model 9 on Task 2 is 0.018 Accuracy of Model 9 on Task 3 is 0.088 Accuracy of Model 9 on Task 4 is 0.194 Accuracy of Model 9 on Task 5 is 0.222 Accuracy of Model 9 on Task 6 is 0.134 Accuracy of Model 9 on Task 7 is 0.260 Accuracy of Model 9 on Task 8 is 0.376 Accuracy of Model 9 on Task 9 is 0.310 Weighted Accuracy of Model 9 is 0.088 Test 10 Accuracy of Model 10 on Task 0 is 0.006 Accuracy of Model 10 on Task 1 is 0.000 Accuracy of Model 10 on Task 2 is 0.012 Accuracy of Model 10 on Task 3 is 0.062 Accuracy of Model 10 on Task 4 is 0.180 Accuracy of Model 10 on Task 5 is 0.200 Accuracy of Model 10 on Task 6 is 0.082 Accuracy of Model 10 on Task 7 is 0.192 Accuracy of Model 10 on Task 8 is 0.322 Accuracy of Model 10 on Task 9 is 0.278 Accuracy of Model 10 on Task 10 is 0.290 Weighted Accuracy of Model 10 is 0.084

yulu0724 commented 4 years ago

Hi, yixiaonaihe. Could you check if the warm-up model is used? You can also try on cub or flower dataset to see if it works well. Please contact me if it doesn't work for you. Thanks!

yulu0724 commented 4 years ago

In addition, you can just ignore the printed accuracy during training. The printed loss is valid.