Bildklassifizierer trainieren

Deep Learning mit PyTorch für Fortgeschrittene

Michal Oleszak

Machine Learning Engineer

Data Augmentation: Rückblick

Bild einer Katze.

Deep Learning mit PyTorch für Fortgeschrittene

Data Augmentation: Rückblick

Bild einer horizontal gespiegelten und gedrehten Katze.

Deep Learning mit PyTorch für Fortgeschrittene

Was man nicht augmentieren sollte

Gelbe Zitrone und grüne Limette sehen gleich aus, unterscheiden sich nur in der Farbe.

Deep Learning mit PyTorch für Fortgeschrittene

Was man nicht augmentieren sollte

Gelbe Zitrone und grüne Limette sehen gleich aus, unterscheiden sich nur in der Farbe.

Deep Learning mit PyTorch für Fortgeschrittene

Was man nicht augmentieren sollte

Der Buchstabe „W“ sieht nach vertikalem Spiegeln wie „M“ aus.

  • Augmentationen können das Label beeinflussen
  • Ob das verwirrt, hängt von der Aufgabe ab
  • Wähle Augmentationen immer passend zu Daten und Aufgabe!
Deep Learning mit PyTorch für Fortgeschrittene

Augmentationen für Wolkenklassifikation

Eine Auswahl an Wolkenbildern.

  • Zufällige Rotation: Modell auf verschiedene Wolkenwinkel vorbereiten
  • Horizontales Spiegeln: unterschiedliche Blickwinkel simulieren
  • Auto-Kontrast: unterschiedliche Lichtverhältnisse simulieren
train_transforms = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomRotation(45),
    transforms.RandomAutocontrast(),
    transforms.ToTensor(),
    transforms.Resize((128, 128))
])
Deep Learning mit PyTorch für Fortgeschrittene

Cross-Entropy-Loss

  • Binärklassifikation: Binary Cross-Entropy (BCE) Loss
  • Multiklassenklassifikation: Cross-Entropy Loss
  • criterion = nn.CrossEntropyLoss()
Deep Learning mit PyTorch für Fortgeschrittene

Trainingsschleife für Bildklassifizierer

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 mit PyTorch für Fortgeschrittene

Lass uns üben!

Deep Learning mit PyTorch für Fortgeschrittene

Preparing Video For Download...