
파이 토치, 오픈 소스 기계 학습 프레임워크, 딥 러닝 응용 프로그램에서 단순성과 사용 용이성으로 인해 인기를 얻고 있습니다. 패션 산업 전문가는 PyTorch를 활용하여 트렌드와 스타일을 식별하고, 의류 조합을 추천하고, 다가오는 시즌의 스타일 성공을 예측할 수도 있습니다. 이 기사에서는 간단한 구현 방법을 공유합니다. 패션 분석 파이토치 사용.
문제 정의
우리의 목표는 각각 다양한 의류 항목을 나타내는 이미지 데이터 세트를 분석하고 PyTorch를 사용하여 이러한 이미지를 다양한 스타일과 트렌드로 분류할 수 있는 딥 러닝 모델을 구축하는 것입니다. 그렇게 함으로써 우리는 패션 산업의 두드러진 트렌드와 함께 잘 어울리는 의류 조합을 식별하는 것을 목표로 합니다.
환경 설정
시작하려면 다음이 필요합니다. Python 파이 토치 우리 시스템에 설치되었습니다. 또한 대중적인 데이터 세트, 모델 아키텍처 및 컴퓨터 비전을 위한 일반적인 이미지 변환이 포함된 패키지인 torchvision을 사용할 것입니다.
pip install torch torchvision
이러한 패키지가 설치되면 이제 문제 해결을 시작할 수 있습니다.
데이터 세트 및 DataLoader
이 기사에서는 다음을 사용합니다. 패션MNIST 이미지 분류를 위한 인기 있는 데이터 세트이며 torchvision을 통해 사용할 수 있습니다. 데이터 세트에는 60,000개의 훈련 이미지와 10,000개의 테스트 이미지가 포함되어 있으며 각 이미지는 10가지 클래스의 의류 항목을 나타냅니다.
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)
우리도 설정해야합니다 데이터로더 데이터 세트 이미지를 효율적으로 로드하고 전처리합니다.
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)
모델 아키텍처
다음으로 우리는 딥 러닝 모델을 정의할 것입니다. 컨볼 루션 신경망 (CNN). CNN은 패션 데이터 내 복잡한 패턴과 구조를 학습할 수 있어 이미지 분석에 적합하다.
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()
교육 및 평가
이제 Cross-Entropy Loss와 SGD(Stochastic Gradient Descent)를 옵티마이저로 사용하여 모델을 훈련합니다. 그런 다음 테스트 데이터 세트에서 모델을 평가하여 성능을 확인합니다.
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}%")
이 모델과 교육 절차를 통해 인상적인 결과를 얻을 수 있습니다. 테스트 데이터 세트에서 패션 산업의 다양한 스타일과 트렌드를 인식하고 분류할 수 있습니다.