MNIST DataSet을 다뤄보겠습니다.

MNIST DataSet

  • training set images: 60,000 장
  • training set labels: 0~9 중 숫자
  • test set images: 10,000 장
  • test set labels: 0~9 중 숫자

이제 60,000장의 traning DataSet를 이용해 학습을 진행한 후

test set images를 이용해 학습이 잘 됐는지 확인하겠습니다.


먼저 Colab에 MNIST DataSet을 불러오도록 하겠습니다.

구글 드라이브에 데이터를 직접 다운받아 불러올 수도 있지만

MNIST란 데이터가 워낙 유명하다보니 굳이 드라이브에 저장을 하지 않고도 사용할 수 있습니다.

그리고 불러올 수 있는 방법도 여러가지가 있습니다.

첫번째 방법, sklearn 사용하기

두번째 방법, keras 사용하기

세번째 방법, torchvision 사용하기

위의 세가지 방법중 하나를 골라 사용하면 됩니다.

저는 세번째 방법인 torchvision을 이용하여 진행하겠습니다.


불러온 데이터를 편하게 사용하기 위해 DataLoader를 사용하겠습니다.

torch.utils.data.DataLoader(데이터셋, batch_size, 데이터를 섞는다면 True, drop_last)

여기서 drop_last는 60,030개의 데이터가 있고 batch_size 100이 있다고 가정을 합니다.

60,030 / 100을 진행하면 30이라는 데이터가 남게 되는데

True로 할시 30개의 데이터를 사용하지 않고, False로 할시 나머지의 데이터도 사용하게 됩니다.

 


DataLoader를 통해 사용하기 쉽게 만들어 줬다면 이제 학습을 시작하겠습니다.

일단 device를 정의해주도록 하겠습니다.

device를 정의해주어 GPU를 사용할 수 있는 환경을 만들어줍니다.

 

linear = torch.nn.Linear(784, 10, bias = true).to(device)

우리가 사용하는 mnist의 train dataset은 (60000, 28, 28)입니다.

하지만 Linear에는 입력 차원이 (x, y)이기 때문에

(28 * 28, 10)으로 맞춰줍니다.

input은 784, output은 0~9 총 10개의 label이 있기때문에 10

※ 후에 cnn에서는 (60000, 28, 28) 그대로 사용할 수 있다.

'Deep Learning > Pytorch' 카테고리의 다른 글

11_Pytorch_Backpropagation  (0) 2021.08.25
10_Pytorch_Perceptron_XOR  (0) 2021.08.25
08_Pytorch_Softmax_Classification  (0) 2021.08.18
07_Pytorch_Logistic_Regression  (0) 2021.08.18
05_Pytorch_nn.Module  (0) 2021.08.13

+ Recent posts