[python] 파이썬 PyTorch에서 데이터셋을 준비하고 전처리하는 방법은?
PyTorch는 딥러닝의 인기 있는 프레임워크 중 하나로, 데이터셋을 준비하고 전처리하는 과정을 간단하게 수행할 수 있습니다. 이를 위해 torchvision 라이브러리를 사용할 수 있으며, 다음은 데이터셋을 준비하고 전처리하는 방법에 대한 예시입니다.
-
torchvision 라이브러리 설치
pip install torchvision
-
데이터셋 불러오기
import torch import torchvision import torchvision.transforms as transforms # CIFAR10 데이터셋 불러오기 transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) # 이미지 정규화 ]) trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2)
transform
을 사용하여 데이터셋에 전처리 단계를 추가할 수 있습니다. 위 예시에서는 이미지를 tensor로 변환하고, 정규화를 수행하는 과정을 추가했습니다. -
데이터셋 사용하기
import matplotlib.pyplot as plt import numpy as np # 무작위로 일부 이미지 시각화하기 def imshow(img): img = img / 2 + 0.5 # 이미지 언표준화 해제 npimg = img.numpy() plt.imshow(np.transpose(npimg, (1, 2, 0))) plt.show() # 학습용 이미지 배치 가져오기 dataiter = iter(trainloader) images, labels = dataiter.next() # 이미지 시각화하기 imshow(torchvision.utils.make_grid(images))
위 코드는 무작위로 가져온 이미지 배치를 시각화하는 예시입니다. 만약 CIFAR10 데이터셋을 사용하고 있다면, 해당 코드를 실행하면 학습용 이미지들이 시각화되어 출력됩니다.
PyTorch를 사용하여 데이터셋을 준비하고 전처리하는 방법은 다양한 변형을 통해 데이터를 조작할 수 있는 유연성을 제공합니다. 필요에 따라서 transforms.Compose를 사용하여 각각의 전처리 작업을 순서대로 연결하고, torchvision.transforms 모듈에서 제공하는 다양한 전처리 기능을 활용할 수 있습니다.
더 자세한 내용은 PyTorch 공식 문서와 torchvision 문서를 참고하시기 바랍니다.