Skip to content

K value selection, potential test set leakage? #6

@javierrodenas

Description

@javierrodenas

I've been trying to reproduce the paper results using the provided code and checkpoints. I noticed a discrepancy between the k value produced during training and the k value stored in the official Meta-tuning checkpoints.

1. Training produces k = 0.0

When running train.py with the default parameters on miniImageNet 1-shot, the optimal k value found during validation is consistently around 0.0 throughout all 100 epochs:

  epoch 84, train 1.1611|98.90%, val 1: 0.8414, 0.8414 (k = 0.0)| MAX: 0.8414
  epoch 97, train 1.1487|98.94%, val 1: 0.8360, 0.8360 (k = 0.0)| MAX: 0.8414

2. Official checkpoint has k = 0.78

  checkpoint = torch.load('./checkpoint/Meta-tuning/miniImageNet-1-shot.pth')
  print(checkpoint['k'])  # Output: 0.78

3. k=0.78 is optimal on TEST set, not validation set

I tested different k values on the novel (test) set:

k Test Accuracy (novel)
0.00 79.56 ± 0.75%
0.20 80.96 ± 0.70%
0.40 82.30 ± 0.66%
0.60 83.15 ± 0.63%
0.78 83.68 ± 0.62%
0.80 83.67 ± 0.63%
1.00 82.73 ± 0.66%

Question

It appears that k=0.78 was selected by evaluating on the test set rather than being determined from the training/validation process. Could you please clarify:

  1. How was k=0.78 determined for the official checkpoints?
  2. Is this the intended behavior, or should the code be modified to produce similar k values during training?

This is important for reproducibility and fair comparison with other methods.

Thank you for your work on this project!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions