Antrenarea clasificatoarelor de imagini

Deep Learning intermediar cu PyTorch

Michal Oleszak

Machine Learning Engineer

Augmentarea datelor — recapitulare

Imaginea unei pisici.

Deep Learning intermediar cu PyTorch

Augmentarea datelor — recapitulare

Imaginea unei pisici oglindite orizontal și rotite.

Deep Learning intermediar cu PyTorch

Ce nu trebuie augmentat

Lămâie galbenă și lime verde arată la fel, diferind doar prin culoare.

Deep Learning intermediar cu PyTorch

Ce nu trebuie augmentat

Lămâie galbenă și lime verde arată la fel, diferind doar prin culoare.

Deep Learning intermediar cu PyTorch

Ce nu trebuie augmentat

Litera „W" după oglindire verticală arată ca litera „M".

  • Augmentările pot modifica eticheta
  • Dacă acest lucru este problematic depinde de sarcină
  • Alegeți întotdeauna augmentările în funcție de date și de sarcină!
Deep Learning intermediar cu PyTorch

Augmentări pentru clasificarea norilor

Un eșantion de imagini cu nori.

  • Rotație aleatorie: expune modelul la unghiuri diferite ale formațiunilor de nori
  • Oglindire orizontală: simulează puncte de vedere diferite ale cerului
  • Ajustare automată a contrastului: simulează condiții de iluminare diferite
train_transforms = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomRotation(45),
    transforms.RandomAutocontrast(),
    transforms.ToTensor(),
    transforms.Resize((128, 128))
])
Deep Learning intermediar cu PyTorch

Funcția de pierdere entropie încrucișată

  • Clasificare binară: funcția de pierdere entropie încrucișată binară (BCE)
  • Clasificare multiclasă: funcția de pierdere entropie încrucișată
  • criterion = nn.CrossEntropyLoss()
Deep Learning intermediar cu PyTorch

Bucla de antrenare a clasificatorului de imagini

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 intermediar cu PyTorch

Să exersăm!

Deep Learning intermediar cu PyTorch

Preparing Video For Download...