YongWook's Notes

<CAFFE> 학습시키기, 사용하기 본문

-software/AI

<CAFFE> 학습시키기, 사용하기

글로벌한량 2016. 8. 30. 17:41

길었던 설치 및 환경설정의 시간을 모두 보내고 드디어 CAFFE를 사용할 시간이 왔다. 졸업과제를 위해 내가 CAFFE 에서 제공하는imagenet의 example로 caffenet을 구축했던 과정을 나열하겠다.

  • 데이터 준비하기
    #준비한 이미지 데이터를 다음 양식에 맞게 준비한다.
    #train.txt 파일
    #파일명 레이블 
    L1_0.jpg 1
    L1_1.jpg 1
    L2_0.jpg 2
    ...
    --------------------------------------------------
    #test.txt 파일
    #파일명 레이블 
    L1_0_test.jpg 1
    L1_1_test.jpg 1
    L2_0_test.jpg 2
    ...
    --------------------------------------------------
    #train폴더
    #train에 사용될 이미지들
    L1_0.jpg
    L1_1.jpg
    L2_0.jpg
    ...
    --------------------------------------------------
    #test 폴더
    #test에 사용될 이미지들
    L1_0_test.jpg 
    L1_1_test.jpg 
    L2_0_test.jpg 
    ...
    
  • create_imagenet.sh 파일 수정
    image파일들을 LMDB(네트워크를 만드는데 jpg파일을 바로 사용하는게 아니라 이 LMDB형식으로 데이터를 변환시킨 후 사용한다.) 로 변환해줌
    #변수들의 용도를 이해하고 수정한다.
    EXAMPLE #LMDB가 생성될 디렉토리
    DATA #위에서 준비한 .txt파일들이 있는곳
    TOOLS #툴의 경로 - 절대경로로 지정만 해주자.
    
    TRAIN_DATA_ROOT #train에 쓰일 데이터들의 경로
    VAL_DATA_ROOT #validation에 쓰일 데이터들의 경로
    
    RESIZE #만약 데이터 이미지들의 크기가 균일하지 않다면 (256*256이 아니라면) true로 바꿔주자.
    
    #echo "Creating val lmdb..." 하단부
    $DATA/val.txt  #우리는 데이터를 train과 test로 나누기로 했으므로 이부분을 test.txt로 바꿔주자. - 애초부터 test, val 로 했다면 상관없음.
    
  • 나머지 설정하기
    1) /caffe/examples/imagenet/make_imagenet_mean.sh의 EXAMPLE변수에 자신의 LMDB폴더의 경로를 입력
    2) /caffe/models/bvlc_reference_caffenet/ 경로의 deploy, solver, train_val.prototxt를 변경한다.
    train_val.prototxt 에서 2군데의 imagenet_mean.binaryproto 파일 경로와 test,train 각각의 LMDB의 경로를 정확히 기입한다.
    3) solver.prototxt는 각종 학습 옵션을 지정할 수 있다. 각 변수에 대한 설명은 다음을 참조하자.
       https://github.com/BVLC/caffe/wiki/Solver-Prototxt
  • 학습 시작하기
    /caffe/build/tools/caffe train --solver=models/bvlc_reference_caffenet/solver.prototxt


Comments