Entraîner des classifieurs d’images

Deep learning intermédiaire avec PyTorch

Michal Oleszak

Machine Learning Engineer

Rappel : augmentation de données

Image d’un chat.

Deep learning intermédiaire avec PyTorch

Rappel : augmentation de données

Image d’un chat retourné horizontalement et pivoté.

Deep learning intermédiaire avec PyTorch

Ce qu’il ne faut pas augmenter

Un citron jaune et un citron vert se ressemblent, seule la couleur change.

Deep learning intermédiaire avec PyTorch

Ce qu’il ne faut pas augmenter

Un citron jaune et un citron vert se ressemblent, seule la couleur change.

Deep learning intermédiaire avec PyTorch

Ce qu’il ne faut pas augmenter

La lettre « W » après retournement vertical ressemble à la lettre « M ».

  • Les augmentations peuvent affecter le label
  • Leur effet dépend de la tâche
  • Choisissez toujours les augmentations selon les données et la tâche
Deep learning intermédiaire avec PyTorch

Augmentations pour classer les nuages

Un échantillon de photos de nuages.

  • Rotation aléatoire : exposer le modèle à divers angles de nuages
  • Retournement horizontal : simuler différents points de vue du ciel
  • Ajustement auto du contraste : simuler diverses lumières
train_transforms = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomRotation(45),
    transforms.RandomAutocontrast(),
    transforms.ToTensor(),
    transforms.Resize((128, 128))
])
Deep learning intermédiaire avec PyTorch

Perte d’entropie croisée

  • Binaire : perte BCE (entropie croisée binaire)
  • Multi-classes : perte d’entropie croisée
  • criterion = nn.CrossEntropyLoss()
Deep learning intermédiaire avec PyTorch

Boucle d’entraînement du classifieur d’images

net = Net(num_classes=7)

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=0.001)


for epoch in range(10): for images, labels in dataloader_train: optimizer.zero_grad() outputs = net(images) loss = criterion(outputs, labels) loss.backward() optimizer.step()
Deep learning intermédiaire avec PyTorch

Passons à la pratique !

Deep learning intermédiaire avec PyTorch

Preparing Video For Download...