티스토리 뷰

Caffe at Windows #03

  • 딥러닝프레임워크 Caffe 로 윈10에서 mnist 예제를 실행해봅니다
    • 2018_05_22 에 확인된 Caffe 기준입니다

준비

  • Caffe 가 빌드된 상태를 가정하고 시작합니다
  • 즉 CPU 또는 GPU로 빌드된 Caffe 가 준비되어야 합니다

LMDB 생성

  • Windows + S 키를 입력합니다
  • 검색창에서 Windows PowerShell 을 검색합니다
    ※ pow 만 입력해도 자동완성으로 등장합니다
  • Windows PowerShell 을 실행합니다

  • caffe 폴더 위치까지 이동합니다
    • caffe 폴더 위치는 $CAFFE_ROOT 라 명명하겠습니다
    • 글쓴이의 경우 $CAFFE_ROOT = C:\Library\caffe 입니다
  • $CAFFE_ROOT 에서
    • ./data/mnist/get_mnist.ps1 을 입력합니다
  • mnist 예제 이미지 파일을 다운로드 받기 시작합니다

  • 위와 같은 문구들을 볼 수 있습니다
  • 해당 폴더에 t10k... 또는 train... 으로 시작하는 파일 8개가 추가됩니다

  • 파일탐색기에서 ($CAFFE_ROOT)\examples\mnist 위치로 이동합니다
  • create_mnist.ps1 을 우클릭한 뒤 편집 을 선택합니다

  • 28행의 코드를 수정합니다
    • $BUILD\convert... → $BUILD\Release\convert...
  • 30행의 코드를 수정합니다
    • $BUILD\convert... → $BUILD\Release\convert...

  • $CAFFE_ROOT 에서 ./examples/mnist/create_mnist.ps1 을 입력합니다
  • get_mnist.ps1 으로 다운로드 받은 이미지 파일들로 lmdb 파일을 생성합니다

  • lmdb 폴더 2개가 생성된 것을 볼 수 있습니다

훈련시키기

  • lenet_solver.prototxt 를 우클릭한 뒤 편집 을 선택합니다

  • 학습에 사용할 프로세서를 선택합니다
    • CPU 를 선택하려면 CPU 를 입력합니다
    • GPU 를 선택하려면 GPU 를 입력합니다
  • 변경사항을 저장한 다음 파일을 닫습니다

※ CPU 로 학습하는 경우 GPU 에 비해 시간이 매우 오래 걸립니다
※ 따라서 CPU 로 학습한다면 max_iter 의 값을 낮추는 것을 추천합니다

  • train_lenet.ps1 을 우클릭한 뒤 편집 을 선택합니다

  • 10행의 코드를 수정합니다
    • $BuildDir\tools\caffe.exe... → $BuildDir\tools\Release\caffe.exe...

  • $CAFFE_ROOT 에서 ./examples/mnist/train_lenet.ps1 을 입력합니다
  • 훈련과정이 출력되고 max_iter 의 값만큼 반복한 뒤 학습이 종료됩니다

  • lenet_iter... 로 시작하는 파일 4개가 추가됩니다
    • *.caffemodel
      • 신경망상태를 저장하는 파일입니다
      • 이 파일을 기반으로 판별을 수행할 수 있습니다
    • *.solverstate
      • 훈련상태를 저장하는 파일입니다
      • 이 파일을 기반으로 훈련을 이어갈 수 있습니다

※ lenet_solver.prototxt 의 snapshot 초기값은 5000으로 설정되어있습니다
※ 따라서 10000번 반복한 결과뿐만 아니라 중간결과인 5000번도 생성된 것입니다


판별시키기


  • $CAFFE_ROOT 에서
    • 스크린샷과 동일하게 입력합니다
  • 훈련용 LMDB 를 기반으로 이미지 mean 파일을 생성합니다

  • ($CAFFE_ROOT)\examples\mnist 위치에서
    • mean.binaryproto 파일이 생성됨을 확인할 수 있습니다

  • label.txt 라는 텍스트파일을 생성합니다
    • 입력값을 어떻게 분류하는지에 대해 명령하는 역할을 수행합니다
  • 텍스트파일의 각 행을 0부터 9까지 채웁니다

※ mnist 파일은 손으로 작성한 숫자 이미지들입니다
※ 따라서 mnist 파일로 학습시킨 결과로는 숫자만 판별할 수 있습니다

  • Windows + R 키를 눌러 실행창을 띄웁니다
  • mspaint 를 입력하고 Enter 를 누릅니다

  • 그림판에서 크기 조정 을 클릭합니다
  • 28 * 28 크기의 이미지로 조정합니다

  • 적당한 도구로 숫자를 그립니다
  • 이미지를 png 파일로 저장합니다
    • 글쓴이는 number_0.png 로 저장했습니다

  • $CAFFE_ROOT 에서
    • 스크린샷과 동일하게 입력합니다
  • 입력값이 어떤 숫자로 판별되었는지 보여줍니다
    • 1.0000 - "0" 은 입력값이 0일 확률이 100%임을 의미합니다

※ 다른 숫자를 그린 png 파일을 입력값으로 전달하여
※ 다른 숫자들에 대해서도 판별해볼 수 있습니다


이상으로 Caffe 로 mnist 예제를 실행하는 과정을 알아보았습니다
감사합니다

'Computer Science > Artificial Intelligence' 카테고리의 다른 글

Introduction to A.I. (2/5)  (0) 2018.10.13
Introduction to A.I. (1/5)  (0) 2018.10.07
Summary of Reinforcement Learning  (0) 2018.08.25
Caffe at Windows #02  (1) 2018.06.02
Caffe at Windows #01  (23) 2018.05.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함