더북(TheBook)

파이토치의 데이터셋과 데이터로더를 이용하면 방대한 양의 데이터를 배치 단위로 쪼개서 처리할 수 있고, 데이터를 무작위로 섞을 수 있기 때문에 효율적으로 데이터를 처리할 수 있습니다. 또한, 여러 개의 GPU를 사용하여 데이터를 병렬로 학습시킬 수도 있습니다. 즉, 데이터양이 많을 때 주로 사용하며 데이터양이 많지 않다면 꼭 사용할 필요는 없습니다.

예제는 데이터양이 많지는 않지만 사용 방법을 익히기 위해 사용했습니다. 데이터로더에 담긴 데이터는 이후 배치 단위로 불러오게 됩니다.

코드 9-31 데이터로더에 데이터 담기

train_data = customdataset(torch.FloatTensor(X_train), torch.FloatTensor(y_train))
test_data = customdataset(torch.FloatTensor(X_test), torch.FloatTensor(y_test))

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

이제 데이터를 제공할 모델의 네트워크를 생성합니다. 네트워크는 배치 정규화(batch normalization)가 포함된 선형 계층으로 구성합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.