윈도우 파이썬 caffe로 딥러닝 시작하기 2
caffe\build 폴더에는 비주얼 스튜디오 솔루션 파일이 생성됩니다. caffe.sln 파일을 열어 비주얼 스튜디오에서 caffe 프로젝트의 소스코드를 확인할 수 있습니다. caffe 프로젝트의 source/layer 에는 각 레이어에 해당하는 cpu 버전의 forward / backward 소스코드를 확인할 수 있습니다. source/cuda 에서는 gpu 버전의 cuda 코드를 확인할 수 있습니다. cuda 코딩을 할 줄 안다면 이를 통해 필요한 레이어를 직접 구현해서 사용할 수도 있습니다.
caffe\build\tools\Release 폴더에는 윈도우용 바이너리 파일이 생성됩니다. 파이썬을 사용하지 않고 caffe.exe 파일을 실행시켜서 학습 및 테스트를 진행할 수도 있습니다. 아래 명령어처럼요.
caffe train --solver=models/solver.prototxt --weights=caffemodels/ZF.caffemodel --gpu=0
위 실행 인자에서는 solver로 solver.prototxt 파일을 사용하고 pretrain 된 ZF.caffemodel을 불러와서 초기 weight로 주며 0번 GPU를 사용합니다. 여담이지만, 화면 출력용 GPU와 학습용 GPU를 따로 두는 것이 좋습니다. 딥러닝 학습을 하면 화면 출력이 느려집니다. 마우스 커서의 움직임이 뚝뚝 끊길 정도로요. 내장 그래픽이 있다면 모니터를 내장 그래픽 카드 출력 단자에 물려서 쓰는 것이 좋습니다.
위 명령어를 실행시키면 아래와 같이 학습이 진행 됩니다. 아래처럼 데이터 파일을 준비해서 콘솔 창에서 학습을 시킬 수도 있고, 아니면 파이썬 코드에서 학습을 시킬 수도 있습니다.
caffe를 파이썬에서 사용하기 위해서는
caffe\python\caffe 폴더가 필요합니다. 해당 폴더에는 파이썬에서 사용할 caffe모듈이 빌드됩니다.
위의 caffe 폴더를 파이썬 프로젝트 폴더 안에 복사해주기만 하면 파이썬에서 caffe를 import할 수 있습니다.
1 2 3 4 5 6 7 | import caffe deploy_prototxt_filename = '../models/deploy.prototxt' caffemodel_filename = '../caffemodels/trained_net.caffemodel' caffe.set_mode_gpu() net = caffe.Net(deploy_prototxt_filename, caffemodel_filename, caffe.TEST) | cs |
위와 같이 caffe를 import하고 network를 불러올 수 있습니다.
1 2 3 | input_data = np.zeros((1, channel, src_h, src_w)) input_data[0] = current_img_data out = net.forward(image=input_data) | cs |
그리고 위와 같이 입력을 주고 forward를 통해 출력을 받습니다.
여기까지 기본적인 윈도우 환경에서 파이썬과 caffe로 딥러닝 환경을 구축하는 과정이었습니다.
데이터를 준비하고 학습을 시키는 부분은 여유가 될 때 정리하도록 하겠습니다.
2017/09/25 - [Lazy Coder] - 윈도우 파이썬 caffe 로 딥러닝 시작하기 1