Çözüldü: pytorch_starting

Son Güncelleme: 09/11/2023

pytorch_starting Moda, sürekli gelişen teknoloji dünyasına yabancı değil ve programcılar, meraklılar ve moda uzmanları olarak en yeni teknolojilerin bir adım önünde olmak çok önemlidir. Bu yollardan biri, hafif, kullanımı kolay ve modern moda analizine son derece uygulanabilir bir makine öğrenimi çerçevesi olan PyTorch ile derin öğrenmedir. Bu makalede, bir girişten başlayarak, PyTorch ile bir sorunu çözerek ve bundan en iyi şekilde yararlanmanıza yardımcı olacak ayrıntılı bir adım adım kılavuzla başlayarak PyTorch'un moda trendlerini analiz etmemize ve anlamamıza nasıl yardımcı olabileceğini inceleyeceğiz. Öyleyse içeri atlayalım!

PyTorch, açık kaynak makine öğrenimi çerçevesi, basitliği ve derin öğrenme uygulamalarında kullanım kolaylığı nedeniyle popülerlik kazanıyor. Moda endüstrisi uzmanlar, trendleri ve stilleri belirlemek, giysi kombinasyonları önermek ve hatta stillerin gelecek sezonlardaki başarısını tahmin etmek için PyTorch'tan yararlanabilir. Bu yazıda, basit bir uygulamanın nasıl uygulanacağını paylaşacağız. moda analizi PyTorch'u kullanarak.

Problem tanımı

Amacımız, her biri çeşitli giyim eşyalarını temsil eden bir görüntü veri kümesini analiz etmek ve bu görüntüleri farklı stillere ve trendlere göre kategorize edebilen derin bir öğrenme modeli oluşturmak için PyTorch'u kullanmaktır. Bunu yaparak, moda endüstrisinde öne çıkan trendleri ve birlikte iyi çalışan giysi kombinasyonlarını belirlemeyi amaçlıyoruz.

Ortamın Ayarlanması

Başlamak için sahip olmamız gerekecek Python hem de PyTorch sistemimizde yüklü. Ek olarak, bilgisayar görüşü için popüler veri kümeleri, model mimarileri ve yaygın görüntü dönüşümlerini içeren bir paket olan torchvision'u kullanacağız.

pip install torch torchvision

Bu paketler yüklendiğinde, artık sorunu çözmeye başlayabiliriz.

Veri Kümesi ve Veri Yükleyici

Bu yazıda kullanacağımız ModaMNIST görüntü sınıflandırması için popüler bir veri kümesi olan ve torchvision aracılığıyla kullanılabilen veri kümesi. Veri seti, 60,000 eğitim görüntüsü ve 10,000 test görüntüsü içerir ve her görüntü 10 farklı sınıftaki giyim eşyalarını temsil eder.

from torchvision import datasets, transforms

transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.5,), (0.5,))
])

train_data = datasets.FashionMNIST(root="./data", train=True, download=True, transform=transform)
test_data = datasets.FashionMNIST(root="./data", train=False, download=True, transform=transform)

Ayrıca kurmamız gerekiyor Veri Yükleyiciler veri kümesi görüntülerini verimli bir şekilde yüklemek ve önceden işlemek için.

from torch.utils.data import DataLoader

train_loader = DataLoader(train_data, batch_size=64, shuffle=True)
test_loader = DataLoader(test_data, batch_size=64, shuffle=False)

Model Mimarisi

Ardından, derin öğrenme modelimizi tanımlayacağız. Evrişimli Sinir Ağı (CNN). Bir CNN, moda verileri içindeki karmaşık kalıpları ve yapıları öğrenebildiği için görüntüleri analiz etmek için uygundur.

import torch.nn as nn
import torch.nn.functional as F

class FashionModel(nn.Module):
    def __init__(self):
        super(FashionModel, self).__init__()
        self.conv1 = nn.Conv2d(1, 32, 3, padding=1)
        self.conv2 = nn.Conv2d(32, 64, 3, padding=1)
        self.pool = nn.MaxPool2d(2, 2)
        self.fc1 = nn.Linear(64*7*7, 128)
        self.fc2 = nn.Linear(128, 10)

    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1, 64*7*7)
        x = F.relu(self.fc1(x))
        x = F.log_softmax(self.fc2(x), dim=1)
        return x

model = FashionModel()

Eğitim ve Değerlendirme

Şimdi, optimize edicimiz olarak Çapraz Entropi Kaybı ve Stokastik Gradient Descent (SGD) kullanarak modeli eğiteceğiz. Ardından, performansını kontrol etmek için modeli test veri kümesinde değerlendireceğiz.

import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)

epochs = 10
for epoch in range(epochs):
    running_loss = 0.0
    for inputs, labels in train_loader:
        optimizer.zero_grad()
        outputs = model(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()
        running_loss += loss.item()
    print(f"Epoch {epoch + 1}, Loss: {running_loss / len(train_loader)}")

correct = 0
total = 0
with torch.no_grad():
    for inputs, labels in test_loader:
        outputs = model(inputs)
        _, predicted = torch.max(outputs.data, 1)
        total += labels.size(0)
        correct += (predicted == labels).sum().item()

print(f"Accuracy: {correct / total * 100}%")

Bu model ve eğitim prosedürü ile etkileyici bir başarı elde edebiliriz. doğruluk test veri setinde, moda endüstrisindeki çeşitli stilleri ve trendleri tanımamızı ve kategorize etmemizi sağlıyor.

İlgili Mesajlar: