Önceden eğitilmiş modellerle çalışma

PyTorch ile Görüntüler için Deep Learning

Michal Oleszak

Machine Learning Engineer

Önceden eğitilmiş modellerden yararlanma

  • Modelleri sıfırdan eğitmek:

    • Uzun süreç
    • Çok veri gerektirir
  • Önceden eğitilmiş modeller - bir görevde zaten eğitilmiş modeller

    • Yeni bir görevde doğrudan yeniden kullanılabilir
    • Yeni göreve uyarlama gerekir (transfer öğrenme)
  • Önceden eğitilmiş modellerden yararlanma adımları:

    • Modelleri yerelde kaydetme ve yükleme
    • torchvision modellerini indirme
PyTorch ile Görüntüler için Deep Learning

Tam bir PyTorch modelini kaydetme

  • torch.save()
  • Model uzantısı: .pt veya .pth
  • Ağırlıkları .state_dict() ile kaydet
    torch.save(model.state_dict(), "BinaryCNN.pth")
    
PyTorch ile Görüntüler için Deep Learning

PyTorch modellerini yükleme

  • Yeni bir model başlat

    new_model = BinaryCNN()
    
  • Kaydedilen parametreleri yükle

    new_model.load_state_dict(torch.load('BinaryCNN.pth'))
    
PyTorch ile Görüntüler için Deep Learning

torchvision modellerini indirme

from torchvision.models import (
    resnet18, ResNet18_Weights
)


weights = ResNet18_Weights.DEFAULT
model = resnet18(weights=weights)
transforms = weights.transforms()
  • resnet mimarisi ve ağırlıkları içe aktar
  • Ağırlıkları al
  • Modele ağırlıkları vererek başlat
  • Gerekli veri dönüşümlerini kaydet
PyTorch ile Görüntüler için Deep Learning

Yeni girdi görsellerini hazırlama

from PIL import Image

image = Image.open("cat013.jpg")

image_tensor = transform(image)
image_reshaped = image_tensors.unsqueeze(0)

 

kedi görseli

  • Görseli yükle
  • Görseli dönüştür
  • Görseli yeniden şekillendir
PyTorch ile Görüntüler için Deep Learning

Yeni bir tahmin üretme

model.eval()


with torch.no_grad():
pred = model(image_reshaped).squeeze(0)
pred_cls = pred.softmax(0)
cls_id = pred_cls.argmax().item()
cls_name = weights.meta["categories"][cls_id]
print(cls_name)
Egyptian cat
  • Çıkarım için değerlendirme modu
  • Gradyanları kapat
  • Görseli modele ver ve batch boyutunu kaldır
  • Softmax uygula
  • En olası sınıfı seç ve indeksini al
  • Sınıf indeksini etikete eşle
  • Sınıf etiketini yazdır
PyTorch ile Görüntüler için Deep Learning

Ayo berlatih!

PyTorch ile Görüntüler için Deep Learning

Preparing Video For Download...