Retour au Blog
Computer Vision 5 décembre 2024 7 min de lecture

Classification d'images avec EfficientNet : meilleures pratiques du transfer learning

Comment fine-tuner EfficientNet pour la classification d'images — planning de dégel, augmentation, label smoothing.

Stratégie de fine-tuning

Phase 1 : entraîner uniquement la tête (5 epochs)

model = EfficientNet.from_pretrained('efficientnet-b4')
for param in model.parameters():
    param.requires_grad = False
# Unfreeze classifier
for param in model._fc.parameters():
    param.requires_grad = True

Phase 2 : dégeler les blocs supérieurs (10 epochs)

for param in model._blocks[-20:].parameters():
    param.requires_grad = True

Phase 3 : fine-tune complet avec LR faible (10 epochs)

optimizer = AdamW(model.parameters(), lr=1e-5)

Label smoothing

criterion = nn.CrossEntropyLoss(label_smoothing=0.1)

Réduit la surconfiance — généralement +1-2 % d'accuracy sur les petits jeux de données.

EfficientNetTransfer LearningImage ClassificationPyTorchFine-Tuning
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc