Skip to content

0. Caffe 설치 방법

HanJiHoon edited this page Nov 19, 2017 · 4 revisions

Caffe 설치 하기

이 튜토리얼의 기본 환경은 Ubuntu 16.04 LTS OS를 사용하며 Python 2.7버전을 기반으로 합니다.

먼저 Caffe를 설치하기 위한 의존성 파일들과 필요한 소프트웨어를 설치해줍니다.

$ sudo apt-get -y update && sudo apt-get -y upgrade
$ sudo apt-get install curl git
$ sudo apt-get install -y python-pip python-dev python-scipy
$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt1-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev
$ pip install --upgrade pip

설치가 모두 완료되면 Caffe를 다운로드 해줍니다.

$ git clone https://github.com/BVLC/caffe.git

다운로드를 마치면 현재 작업중인 디렉토리에 "caffe"라는 디렉토리가 생성이 됩니다.

해당 디렉토리로 이동을 한 뒤에 Caffe와 Python 연동을 하기 위한 의존성 라이브러리들도 미리 설치를 해줍니다.

cd caffe
$ cat python/requirements.txt | xargs -L 1 sudo pip install

위 작접이 완료된 뒤에 추가적으로 링킹을 합니다.

Make Symbolic mark
$ ln -s /usr/include/python2.7/ /usr/local/include/python2.7
$ ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy /usr/local/include/python2.7/numpy

그리고 Caffe를 컴파일 해주기 위해 Makefile.config를 만들어주어야합니다. Caffe가 기본적으로 예시를 제공해주기에 복사해서 만들어줍니다.

$ cp Makefile.config.example Makefile.config

하지만 아직 완벽히 세팅이 되어있지 않은 상태입니다. 정말 기본 상태이기에 추가적 수정이 필요합니다.

수정이 귀찮으시다면 해당 튜토리얼의 Makefile_config_EX에서 미리 세팅을 해둔 Makefile.config를 다운로드 받아 사용하셔도 무난합니다.

이제 Makfile.config를 잘 수정해주었다면 Caffe 컴파일을 진행합니다.

make 다음에 붙는 -jXX 옵션은 컴파일하면서 사용할 CPU 코어의 수를 설정해준다. XX에 숫자를 넣어주면 된다. 하지만 너무 높게할 경우, 컴퓨터가 제대로 작동하지 않을 수도 있기에 알아서 적당한 숫자를 설정할 수 있도록하며 여기서는 -j16으로 진행합니다.

$ make -j16 all && make -j16 test && make pycaffe && make -j16 runtest

마지막 runtest까지 모두 OK가 출력된다면 설치가 완료된 것으로 지금부터 바로 사용할 수 있습니다. 다음은 Caffe가 어떻게 작동하는지 다루어볼 것입니다.

에러

혹시나 Caffe를 설치하면서 문제가 발생한다면 아래 사항들이 도움이 될 것입니다.

에러 : hdf5

$cd /usr/lib/x86_64-linux-gnu
$ln -s libhdf5_serial.so.8.0.2 libhdf5.so
$ln -s libhdf5_serial_hl.so.8.0.2 libhdf5_hl.so
(caffe root directory로 돌아온다)
vi Makefile.config
(아래와 같이 코드를 수정한다.)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ 
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/

에러 : "fatal error: gflags/gflags.h:No such file or directory"

$ wget https://github.com/schuhschuh/gflags/archive/master.zip
$ unzip master.zip
$ cd gflags-master
$ mkdir build && cd build
$ export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
$ make
$ sudo make install
$ make all
$ make test

에러 : "ImportError: No module named google.protobuf.internal"

$ pip install protobuf

에러 : "ImportError: No module named skimage"

$ pip install scikit-image