Image Classification : MNIST

happy_quokka·2023년 12월 17일
0

딥러닝

목록 보기
4/18

MNIST

  • pytorch에서 dataset을 자동으로 다운받을 수 있기 때문에 따로 다운 받지 않아도 된다
  • LeNet5를 사용하여 학습

데이터 normalization 해주는 이유

  • 픽셀 0~255 사이의 값
  • range가 크기 때문에 weight가 잘 수렴되지 않고 output도 큰 숫자로 나오게 되는 문제
  • 분산(0~255)이 너무 크기 때문에 normalization 해줘야한다
  • 0~255 -> 0~1로 변환
  • 전처리해줘야한다

Dataloader

  • dataset
  • batch_size : 한번에 처리할 이미지 개수
  • shuffle
  • pin_memory : gpu로 데이터를 빠르게 옮겨주는 역할
  • num_workers : gpu에 학습할 때, data를 cuda로 올려야하고 이게 끝나면 학습하는데 그때 cpu와 gpu 사이에서 전송을 해주는 역할, 보통 cpu core의 절반 정도
  • drop_last : batch를 하고 남은 데이터를 버릴지 말지
  • StepLR : 단계적으로 learning rate가 떨어지도록
    scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.1)
  • 5일때 lr를 0.1배 만큼으로 줄인다

실행 방법

  • train
python main.py --mode train --download 1 --output_dir './output'
  • eval
python main.py --mode eval --download 1 --output_dir './output' --checkpoint ./output/model_epoch0.pt
  • test
python main.py --mode test --download 1 --output_dir './output' --checkpoint ./output/model_epoch0.pt

0개의 댓글