Takip et

PyTorch ile Çiçek Sınıflandırma: Flowers102 Veri Seti

PyTorch ile Çiçek Sınıflandırma: Flowers102 Veri Seti

Bu makalede, PyTorch kütüphanesini kullanarak Flowers102 veri seti üzerinde bir çiçek sınıflandırma modeli nasıl oluşturulacağını adım adım açıklayacağız. Flowers102 veri seti, 102 farklı çiçek türünden oluşan 8189 görsel içerir ve derin öğrenme modelleri için popüler bir seçimdir. Öncelikle veri setini nasıl indireceğimizi ve ön işleme yapacağımızı, sonrasında ise model mimarisini ve eğitim sürecini detaylı bir şekilde ele alacağız.

Veri Setinin Hazırlanması

Flowers102 veri setini indirmek için öncelikle bu bağlantıyı kullanabilirsiniz. İndirdiğiniz dosyaları uygun bir dizine çıkarın. Ardından, PyTorch’un torchvision.datasets modülünü kullanarak veri setini yükleyebiliriz. Bu işlem, veri setinin okunmasını ve eğitim ve test kümelerine ayrılmasını sağlar. Aşağıdaki kod bloğu, veri setinin yüklenmesini ve dönüştürülmesini göstermektedir:


import torchvision.transforms as transforms
from torchvision.datasets import Flowers102
from torch.utils.data import DataLoader

# Dönüşüm fonksiyonları
transform = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.ToTensor(),
    transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))
])

# Veri setinin yüklenmesi
train_dataset = Flowers102(root='./flowers102', split='train', download=True, transform=transform)
test_dataset = Flowers102(root='./flowers102', split='test', download=True, transform=transform)

# DataLoader oluşturma
train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=32, shuffle=False)

Burada, resimleri 224×224 boyutuna yeniden boyutlandırıyor, tensörlere dönüştürüyor ve ImageNet ortalaması ve standart sapması ile normalize ediyoruz. Bu adımlar, modelin performansını iyileştirmeye yardımcı olur.

Model Mimarisinin Seçimi ve Eğitimi

Çiçek sınıflandırma problemi için, önceden eğitilmiş bir convolutional neural network (CNN) modeli kullanmak oldukça etkilidir. Örneğin, ResNet, VGG veya EfficientNet gibi modeller kullanılabilir. Bu modeller, büyük bir görüntü veri seti üzerinde eğitildiği için, Flowers102 veri seti üzerinde hızlıca iyi performans gösterebilir. Daha sonra, bu önceden eğitilmiş modelin son katmanını, 102 çiçek sınıfına uygun bir şekilde yeniden düzenlememiz gerekir. Bu, transfer öğrenmesi olarak bilinir ve eğitim sürecini hızlandırır ve daha iyi genelleme yeteneği sağlar.

Modelin eğitimi için, uygun bir optimizasyon algoritması (örneğin, Adam veya SGD) ve kayıp fonksiyonu (örneğin, cross-entropy) seçilmelidir. Eğitim süreci boyunca, modelin performansı doğruluk oranı gibi metrikler kullanılarak izlenmelidir. Aşağıdaki kod bloğu, basit bir eğitim döngüsünü göstermektedir:


# ... (Model ve optimizasyon ayarları) ...

for epoch in range(num_epochs):
    for images, labels in train_loader:
        # ... (ileri yayılım, geri yayılım ve ağırlık güncellemeleri) ...

# Test verileri üzerinde değerlendirme
# ...

Bu kod bloğu, eğitim döngüsünün temel yapısını göstermektedir. Gerçek uygulamada, daha detaylı hata kontrol mekanizmaları ve öğrenme oranı düzenleme teknikleri eklenmelidir. Daha detaylı bir eğitim döngüsü örneği için, PyTorch resmi dokümanlarına bakabilirsiniz. Ayrıca, fatihsoysal.com adresindeki diğer makalelerime de göz atabilirsiniz.

Sonuçlar ve İleri Adımlar

Flowers102 veri seti üzerinde eğitilmiş bir çiçek sınıflandırma modeli, yüksek doğruluk oranlarına ulaşabilir. Ancak, modelin performansı, kullanılan model mimarisi, hiperparametreler ve veri ön işleme tekniklerine bağlı olarak değişir. Daha iyi sonuçlar elde etmek için, farklı model mimarileri denemek, hiperparametreleri ayarlamak ve daha gelişmiş veri ön işleme teknikleri uygulamak faydalı olabilir. Ayrıca, modelin genelleme yeteneğini artırmak için veri artırma teknikleri kullanılabilir.

Sonuç olarak, PyTorch kullanarak Flowers102 veri seti üzerinde güçlü bir çiçek sınıflandırma modeli oluşturmak mümkündür. Bu makalede sunulan bilgiler ve örnek kodlar, bu görevi gerçekleştirmek için güçlü bir temel oluşturur. Daha fazla bilgi için ilgili kaynaklara ve diğer makalelere göz atmayı unutmayın.

#Etiketler: PyTorch, Flowers102, Çiçek Sınıflandırma, Derin Öğrenme, Yapay Zeka, Makine Öğrenmesi, Veri Seti, Model Eğitimi, Python, Transfer Öğrenmesi, CNN, ResNet, VGG, EfficientNet


Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.