Treinando classificadores de imagens

Aprendizagem profunda intermediária com PyTorch

Michal Oleszak

Machine Learning Engineer

Revisitando aumento de dados

Imagem de um gato.

Aprendizagem profunda intermediária com PyTorch

Revisitando aumento de dados

Imagem de um gato espelhada horizontalmente e rotacionada.

Aprendizagem profunda intermediária com PyTorch

O que não deve ser aumentado

Limão amarelo e lima verde parecem iguais, só mudam na cor.

Aprendizagem profunda intermediária com PyTorch

O que não deve ser aumentado

Limão amarelo e lima verde parecem iguais, só mudam na cor.

Aprendizagem profunda intermediária com PyTorch

O que não deve ser aumentado

A letra "W" após espelhamento vertical parece a letra "M".

  • Aumentações podem afetar o rótulo
  • Se isso confunde depende da tarefa
  • Sempre escolha aumentações com base nos dados e na tarefa!
Aprendizagem profunda intermediária com PyTorch

Aumentações para classificar nuvens

Uma amostra de fotos de nuvens.

  • Rotação aleatória: expõe o modelo a ângulos diferentes de nuvens
  • Espelhamento horizontal: simula pontos de vista diferentes do céu
  • Ajuste automático de contraste: simula condições de luz variadas
train_transforms = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomRotation(45),
    transforms.RandomAutocontrast(),
    transforms.ToTensor(),
    transforms.Resize((128, 128))
])
Aprendizagem profunda intermediária com PyTorch

Perda Cross-Entropy

  • Classificação binária: perda BCE (binary cross-entropy)
  • Multiclasse: perda cross-entropy
  • criterion = nn.CrossEntropyLoss()
Aprendizagem profunda intermediária com PyTorch

Loop de treino do classificador de imagens

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()
Aprendizagem profunda intermediária com PyTorch

Vamos praticar!

Aprendizagem profunda intermediária com PyTorch

Preparing Video For Download...