kjunelee / MetaOptNet

Meta-Learning with Differentiable Convex Optimization (CVPR 2019 Oral)
Apache License 2.0
524 stars 97 forks source link

cannot repeat paper's results #27

Closed robotzheng closed 4 years ago

robotzheng commented 5 years ago

python3 test.py --gpu 0,1,2,3 --load ./experiments/miniImageNet_MetaOptNet_SVM/best_model.pth --episode 1000 --way 5 --shot 5 --query 15 --head SVM --network ResNet --dataset miniImageNet Loading mini ImageNet dataset - phase test using gpu: 0,1,2,3 {'gpu': '0,1,2,3', 'load': './experiments/miniImageNet_MetaOptNet_SVM/best_model.pth', 'episode': 1000, 'way': 5, 'shot': 5, 'query': 15, 'network': 'ResNet', 'head': 'SVM', 'dataset': 'miniImageNet'} 5%|████████▎ | 49/1000 [00:14<01:43, 9.19it/s]Episode [50/1000]: Accuracy: 77.12 ± 2.30 % (94.67 %) 10%|████████████████▊ | 99/1000 [00:19<01:38, 9.18it/s]Episode [100/1000]: Accuracy: 76.51 ± 1.55 % (78.67 %) 15%|█████████████████████████▏ | 149/1000 [00:25<01:32, 9.19it/s]Episode [150/1000]: Accuracy: 76.93 ± 1.16 % (77.33 %) 20%|█████████████████████████████████▋ | 199/1000 [00:30<01:27, 9.12it/s]Episode [200/1000]: Accuracy: 77.11 ± 1.02 % (92.00 %) 25%|██████████████████████████████████████████ | 249/1000 [00:36<01:24, 8.86it/s]Episode [250/1000]: Accuracy: 77.03 ± 0.95 % (78.67 %) 30%|██████████████████████████████████████████████████▌ | 299/1000 [00:41<01:16, 9.15it/s]Episode [300/1000]: Accuracy: 77.30 ± 0.86 % (81.33 %) 35%|██████████████████████████████████████████████████████████▉ | 349/1000 [00:46<01:10, 9.27it/s]Episode [350/1000]: Accuracy: 77.24 ± 0.81 % (76.00 %) 40%|███████████████████████████████████████████████████████████████████▍ | 399/1000 [00:52<01:00, 9.89it/s]Episode [400/1000]: Accuracy: 77.34 ± 0.77 % (80.00 %) 45%|███████████████████████████████████████████████████████████████████████████▉ | 449/1000 [00:57<00:57, 9.65it/s]Episode [450/1000]: Accuracy: 77.58 ± 0.72 % (88.00 %) 50%|████████████████████████████████████████████████████████████████████████████████████▎ | 499/1000 [01:02<00:50, 9.93it/s]Episode [500/1000]: Accuracy: 77.84 ± 0.68 % (78.67 %) 55%|████████████████████████████████████████████████████████████████████████████████████████████▊ | 549/1000 [01:07<00:45, 9.92it/s]Episode [550/1000]: Accuracy: 77.78 ± 0.64 % (78.67 %) 60%|█████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 599/1000 [01:12<00:40, 9.92it/s]Episode [600/1000]: Accuracy: 77.80 ± 0.61 % (69.33 %) 65%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 649/1000 [01:17<00:35, 9.87it/s]Episode [650/1000]: Accuracy: 77.82 ± 0.59 % (82.67 %) 70%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 699/1000 [01:22<00:30, 9.91it/s]Episode [700/1000]: Accuracy: 77.75 ± 0.57 % (80.00 %) 75%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 749/1000 [01:28<00:27, 9.18it/s]Episode [750/1000]: Accuracy: 77.67 ± 0.55 % (76.00 %) 80%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 799/1000 [01:33<00:21, 9.18it/s]Episode [800/1000]: Accuracy: 77.65 ± 0.54 % (70.67 %) 85%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 849/1000 [01:38<00:16, 9.22it/s]Episode [850/1000]: Accuracy: 77.60 ± 0.52 % (89.33 %) 90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 899/1000 [01:44<00:10, 9.20it/s]Episode [900/1000]: Accuracy: 77.67 ± 0.51 % (80.00 %) 95%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 949/1000 [01:49<00:05, 9.18it/s]Episode [950/1000]: Accuracy: 77.62 ± 0.50 % (68.00 %) 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊| 999/1000 [01:55<00:00, 9.02it/s]Episode [1000/1000]: Accuracy: 77.55 ± 0.49 % (73.33 %) 100%|██

python3 test.py --gpu 0,1,2,3 --load ./experiments/miniImageNet_MetaOptNet_SVM/best_model.pth --episode 1000 --way 5 --shot 1 --query 15 --head SVM --network ResNet --dataset miniImageNet Loading mini ImageNet dataset - phase test using gpu: 0,1,2,3 {'gpu': '0,1,2,3', 'load': './experiments/miniImageNet_MetaOptNet_SVM/best_model.pth', 'episode': 1000, 'way': 5, 'shot': 1, 'query': 15, 'network': 'ResNet', 'head': 'SVM', 'dataset': 'miniImageNet'} 5%|████████▏ | 48/1000 [00:13<01:32, 10.29it/s]Episode [50/1000]: Accuracy: 59.89 ± 3.07 % (69.33 %) 10%|████████████████▋ | 98/1000 [00:18<01:27, 10.37it/s]Episode [100/1000]: Accuracy: 60.99 ± 2.20 % (62.67 %) 15%|█████████████████████████ | 148/1000 [00:23<01:23, 10.20it/s]Episode [150/1000]: Accuracy: 60.69 ± 1.78 % (60.00 %) 20%|█████████████████████████████████▍ | 198/1000 [00:28<01:27, 9.21it/s]Episode [200/1000]: Accuracy: 60.57 ± 1.55 % (62.67 %) 25%|█████████████████████████████████████████▉ | 248/1000 [00:32<01:07, 11.22it/s]Episode [250/1000]: Accuracy: 60.69 ± 1.40 % (60.00 %) 30%|██████████████████████████████████████████████████▎ | 298/1000 [00:37<01:02, 11.27it/s]Episode [300/1000]: Accuracy: 61.19 ± 1.24 % (69.33 %) 35%|██████████████████████████████████████████████████████████▊ | 348/1000 [00:41<00:58, 11.16it/s]Episode [350/1000]: Accuracy: 61.64 ± 1.13 % (62.67 %) 40%|███████████████████████████████████████████████████████████████████▎ | 398/1000 [00:46<00:53, 11.20it/s]Episode [400/1000]: Accuracy: 61.48 ± 1.05 % (40.00 %) 45%|███████████████████████████████████████████████████████████████████████████▋ | 448/1000 [00:50<00:49, 11.25it/s]Episode [450/1000]: Accuracy: 61.34 ± 0.99 % (60.00 %) 50%|████████████████████████████████████████████████████████████████████████████████████▏ | 498/1000 [00:55<00:44, 11.26it/s]Episode [500/1000]: Accuracy: 61.12 ± 0.92 % (34.67 %) 55%|████████████████████████████████████████████████████████████████████████████████████████████▌ | 548/1000 [00:59<00:40, 11.16it/s]Episode [550/1000]: Accuracy: 61.09 ± 0.88 % (50.67 %) 60%|█████████████████████████████████████████████████████████████████████████████████████████████████████ | 598/1000 [01:04<00:35, 11.19it/s]Episode [600/1000]: Accuracy: 60.95 ± 0.83 % (60.00 %) 65%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 648/1000 [01:08<00:31, 11.17it/s]Episode [650/1000]: Accuracy: 60.97 ± 0.79 % (65.33 %) 70%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 698/1000 [01:13<00:27, 11.17it/s]Episode [700/1000]: Accuracy: 61.00 ± 0.76 % (60.00 %) 75%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 748/1000 [01:17<00:22, 11.19it/s]Episode [750/1000]: Accuracy: 60.86 ± 0.73 % (60.00 %) 80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 798/1000 [01:22<00:18, 11.12it/s]Episode [800/1000]: Accuracy: 60.86 ± 0.71 % (64.00 %) 85%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 848/1000 [01:26<00:13, 11.27it/s]Episode [850/1000]: Accuracy: 60.87 ± 0.68 % (61.33 %) 90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 898/1000 [01:30<00:09, 11.18it/s]Episode [900/1000]: Accuracy: 60.84 ± 0.66 % (73.33 %) 95%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 948/1000 [01:35<00:04, 11.23it/s]Episode [950/1000]: Accuracy: 60.84 ± 0.66 % (26.67 %) 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋| 998/1000 [01:39<00:00, 11.11it/s]Episode [1000/1000]: Accuracy: 60.89 ± 0.64 % (72.00 %) 100%|█

kjunelee commented 4 years ago

Thanks for your interest in our work!

As mentioned in #8, each meta-training run can result in slightly different result. Also, #25 suggests that the result of both ProtoNet and MetaOptNet can vary across different environments. I experienced similar issues with many other few-shot learning algorithms. Also, I guess the versions of packages should matter. In my environment, I never had <61% accuracy on MetaOptNet-SVM when label smoothing is applied.

The message of our paper is about the gap between non-parametric base learners and parametric base learners, and I believe that the gap should exist within the same environment.