Windows에서 Caffe 첫 컴파일 해보기 with Visual Studio 2013(๑•‿•๑)

지난 포스팅에서는 Caffe의 설치를 해 보았습니다!
이번에는 Caffe 프로젝트를 빌드해볼건데요.
역시나 초보에게는 만만치 않다는 ( ; ▽ ; )

그래도 차근차근 시작해 봅시다>♡<

1. commonsettings.props

Caffe github에서 바로 다운로드 받고 압축을 푼 다음 아무것도 하지 않았다면, 먼저 props 파일을 만들어(?) 주어야 합니다.

Caffe/window 에서 commonsettings.props.example 파일을 찾아서 확장자 .example를 지워주세요.
변경 전: commonsettings.props.example
변경 후: commonsettings.props

그 다음, 몇가지 태그를 수정해 줄 건데요. 아래와 같이 수정해 주시면 됩니다:

<CpuOnlyBuild>true</CpuOnlyBuild>
<UseCuDNN>false</UseCuDNN>
<CudaVersion>8.0</CudaVersion>
<PythonSupport>false</PythonSupport>
<CuDnnPath>C:\cuda</CuDnnPath>
<PythonDir>C:\Programs Files\Anaconda3\</PythonDir>

CuDnnPath와 PythonDir에는 각자 설치된 위치를 적어주세요.


2. Caffe 빌드 에러 처리

Caffe/windows/Caffe.sln 파일을 열어주세요. 
그 다음, 빌드 해주시면 됩니다 ^오^.. 는 농담이구요ㅎㅎ;
그냥 그렇게 빌드가 잘 되면 너무나 기쁘겠지만 당연히 잘 안됩니다. 

libcaffe를 우선 빌드한 후, 솔루션 전체를 빌드해보기로 합시다. 
빌드를 누르고 기다리다 보면 어마어마한 갯수의 에러가 등장합니다. 침착하게 해결해 봅시다. 

가장 먼저 눈에 띄는 에러는 C2220입니다.


project properties -> configuration -> C/C++ -> Treat warning As Errors: No(/WX-) 로 설정해 주시면 금방 처리가 됩니다. 다만 모든 프로젝트에 대해 이 설정을 해주어야 한다는 단점이 있죠 (*`^´)
이렇게도 처리할 수 있습니다: 아까 열심히 수정했던 Commonsetting.prop 파일을 다시 열어서 <TreatWarningAsError>태그를 false로 해주면 됩니다.

다음엔 C1083을 처리해 봅시다.


project properties -> configuration -> C/C++ -> Precompiled Headers -> Precompiled Header: Create(/Yc)
위와 같이 바꿔주면 잘 처리가 됩니다.

다음으로는 LNK1104가 있을 수 있는데요,


project properties -> configuration -> VC++ Cirectories -> Library Directories : <Edit..> 에서 헤더파일 위치 추가
위와 같이 해주면 처리가 잘 됩니다. 


우선 제가 제일 골머리를 앓은 에러는 이렇게구요, 대부분의 에러는 에러코드를 구글링하면 다 해결방법이 나오니 걱정마시고 검색해주세요ㅎㅎ 

3. Caffe 빌드

에러 처리까지 잘 해서 빌드가 완료되었다면, 이번엔 Release 모드로 한번 더 빌드해주세요. 
Solution 'Caffe'에서 오른쪽 버튼을 클릭하면 Configuration Manager이 있습니다. 
여기에서 Active solution configuration을 Release로 바꾸고 한번 더 빌드해주면 됩니다. 


4. 설치 확인

명령 프롬프트에서 Caffe로 들어간 후, 아래 명령어를 실행해 줍니다. 
>Test_all 
아래 사진과 같이 촤라라락 뜨게 되면 잘 되었다는 뜻입니다! 


Caffe/Build/x64/Release 아래에 가면 꽤 많은 exe 파일들이 있습니다. 우리가 명령 프롬프트에서 실행하게 되는 명령어들은 다 이 실행 파일들을 쓰는 거라고 보시면 됩니다. 
실행 파일을 명령어로! 


이번 포스팅에서는 Caffe 빌드를 해보았는데요!
이게 엄청 별거 아닌것 같지만... 저는 하루 내내 낑낑거렸다는 ;ㅅ; 
다음 포스팅에서는 mnist 예제를 돌려보려고 합니다. 그럼 다음에 만나요ㅎㅎ 



댓글

  1. 헤더파일 위치 추가를 어떻게 해야 해요???

    답글삭제
  2. 좋은 글 잘 보았습니다.

    한가지 질문이 있는데요.

    Visual Studio 2017에서 MFC기반으로 caffe를 사용할 수 있나요?

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

R plot으로 그래프 그리기: 점 여러 개 찍기 ๑•‿•๑

Windows에서 Caffe 예제 돌리기 : MNIST(1) (๑•‿•๑)

Caffe 구성 요소들 알아보기: blobs, nets, layer, solver, prototxt ๑•‿•๑