Trénování klasifikátorů obrázků

Intermediate Deep Learning with PyTorch

Michal Oleszak

Machine Learning Engineer

Datová augmentace – přehled

Obrázek kočky.

Intermediate Deep Learning with PyTorch

Datová augmentace – přehled

Obrázek kočky překlopený horizontálně a otočený.

Intermediate Deep Learning with PyTorch

Co by se nemělo augmentovat

Žlutý citron a zelený lajm vypadají stejně, liší se pouze barvou.

Intermediate Deep Learning with PyTorch

Co by se nemělo augmentovat

Žlutý citron a zelený lajm vypadají stejně, liší se pouze barvou.

Intermediate Deep Learning with PyTorch

Co by se nemělo augmentovat

Písmeno „W" po vertikálním překlopení vypadá jako písmeno „M".

  • Augmentace mohou ovlivnit třídu
  • Zda je to matoucí, závisí na úloze
  • Vždy volte augmentace s ohledem na data a úlohu!
Intermediate Deep Learning with PyTorch

Augmentace pro klasifikaci oblaků

Ukázka snímků oblaků.

  • Náhodná rotace: vystavení modelu různým úhlům oblačných útvarů
  • Horizontální překlopení: simulace různých pohledů na oblohu
  • Automatická úprava kontrastu: simulace různých světelných podmínek
train_transforms = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomRotation(45),
    transforms.RandomAutocontrast(),
    transforms.ToTensor(),
    transforms.Resize((128, 128))
])
Intermediate Deep Learning with PyTorch

Ztrátová funkce cross-entropy

  • Binární klasifikace: ztrátová funkce BCE
  • Vícetřídní klasifikace: ztrátová funkce cross-entropy
  • criterion = nn.CrossEntropyLoss()
Intermediate Deep Learning with PyTorch

Trénovací smyčka klasifikátoru obrázků

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()
Intermediate Deep Learning with PyTorch

Let's practice!

Intermediate Deep Learning with PyTorch

Preparing Video For Download...