딥러닝/이것저것
딥러닝(5) - 합성곱 신경망 구현하기 : 구현에 필요한 것들 모음
SolartheNomad
2023. 3. 18. 16:04
#fashion_mnist 데이터셋
토치비전에 내장된 예제 이미지 데이터셋
fashion_mnist의 데이터 셋 구성
train_images : 0~255 사이의 값을 갖는 크기의 넘파이 배열
레이블(정답) 데이터(train_labels) : 0~9까지 정수값을 갖는 배열
** 레이블(정답) 데이터들의 features
0 : T-Shirt
1 : Trouser
2 : Pullover
3 : Dress
4 : Coat
5 : Sandal
6 : Shirt
7 : Sneaker
8 : Bag
9 : Ankle Boot
# GPU 사용 관련
하나의 GPU를 사용할 때의 세팅 설정
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model = Net()
model.to(device)
여러 개의 CPU 사용할 때의 세팅 설정
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = Net()
if torch.cuda.device_count() > 1:
model = nn.DataParallel(net)
model.to(device)
** nn.DataParallel
배치 크기가 알아서 각 GPU로 분배됨
GPU 수만큼 배치 크기도 똑같이 늘려주어야 함
## torchvision.datasets
torch.utils.data.Dataset의 하위 클래스로 다양한 데이터셋(CIFAR, COCO, MNIST, ImageNet 등)을 가지고 있음
torchvision.datasets.FashionMNIST("FashionMNIST를 내려받을 위치 지정", download=True, transform=transform.Compose([transforms.ToTensor()]))
download = True
첫 번째 파라미터의 위치에 해당 데이터셋이 있는지 확인한 후 내려받기
transfrom.Compose([transforms.ToTensor()])
이미지를 텐서(0~1)로 변경한다.
#torch.utils.data.DataLoader()
원하는 크기의 배치 단위로 데이터를 불러오거나, 순서가 무작위로 섞이도록(shuffle) 하는 것
ⓐ train_dataset: 데이터를 불러올 데이터셋을 지정함
ⓑ batch_size: 데이터를 배치로 묶어 준다. 여기에서는 batch_size=100으로 지정했기 때문에 100개 단위로 데이터를 묶어서 불러온다.