Caffe:Install
Caffe 설치방법을 정리한다.
CUDA Version
참고로 Ubuntu 14.04 설치시 사용한 CUDA버전은 아래와 같다.
- CUDA 7.5:
cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
- cuDNN v4 (cuda7.0):
cudnn-7.0-linux-x64-v4.0-prod.tgz
How to install
Caffe 설치를 위해 필요한 라이브러리를 아래와 같이 설치한다.
RHEL
$ sudo yum install -y openblas-devel
##If use Atlas:
##sudo yum install -y atlas-devel
$ sudo yum install -y protobuf-devel gflags-devel
##Not found:
##sudo yum install -y glog-devel
$ sudo yum install -y hdf5-devel leveldb-devel snappy-devel lmdb-devel
Mac OSX
brew install -vd snappy leveldb gflags glog szip lmdb
# need the homebrew science source for OpenCV and hdf5
brew tap homebrew/science
brew install hdf5 opencv
Ubuntu
## General dependencies:
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
## Boost Library:
$ sudo apt-get install --no-install-recommends libboost-all-dev
## BLAS ATLAS Library:
$ sudo apt-get install libatlas-base-dev
## or BLAS OpenBLAS Library:
$ sudo apt-get install libopenblas-dev
## Python:
$ sudo apt-get install python-dev
## Remaining dependencies, 14.04:
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
CUDA의 cuDNN을 사용하는 컴파일 방법은 아래와 같다.
(CPU만 사용할 경우 CPU_ONLY=1
옵션을 추가하면 된다.)
cuDNN을 사용할 경우 중요한 점은 cudnn.h
및 libcudnn.so
파일 등을 CUDA의 include
, lib64
디렉터리에 함께 포함해야 한다.
참고로 CentOS6에서 컴파일에 성공한 명령은 아래와 같다.
$ cmake -DPYTHON_LIBRARY=/home/your/local/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR=/home/your/local/include/python2.7 -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS=-static-libstdc++ -DBLAS=Open -DUSE_CUDNN=1 -G "Unix Makefiles"
(glog의 경우 yum에 존재하지 않아, 직접 설치하였다)
Windows
- Github: happynear/caffe-windows
- Github: Windows Caffe (windows branch)
- Deep Learning: 영상을 이용하기위한 Convolutional Neural Networks, CNN (Windows 컴파일)
Windows/MinGW용으로 변환할 경우 코드를 수정해야 하는 부분은 signal_handler.cpp
가 첫 번째 이다. signal_handler.cpp 파일을 확인해 보자.
Python caffe
numpy와 boost.python이 필요하며, 그 밖의 종속성은 아래와 같이 설치할 수 있다.
컴파일은 아래의 명령어로 진행할 수 있다. 1
Use the virtualenv
덧붙여, virtualenv를 사용할 경우 아래와 같이 Python경로를 지정해야 한다.
$ cmake -DBLAS=Open \
-DCPU_ONLY=ON \
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DPYTHON_LIBRARY=/Users/your/.pyenv/versions/your-pyenv-2.7.11/lib/python2.7/config/libpython2.7.a \
-DPYTHON_INCLUDE_DIR=/Users/your/.pyenv/versions/your-pyenv-2.7.11/include/python2.7 \
.
python 3.5 and pyenv
Then compile the Caffe and run the tests
Results:
Remaining dependencies, recent OS
Remaining dependencies, if not found
## glog
$ wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
$ tar zxvf glog-0.3.3.tar.gz
$ cd glog-0.3.3
$ ./configure
$ make && make install
## gflags
$ 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 && make install
## lmdb
$ git clone https://github.com/LMDB/lmdb
$ cd lmdb/libraries/liblmdb
$ make && make install
Dockerfile version
Ubuntu Dockerfile에 설치한 Caffe는 아래와 같다.
FROM ubuntu:14.04
MAINTAINER your <[email protected]>
RUN apt-get update -y
RUN apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
RUN apt-get install -y --no-install-recommends libboost-all-dev
RUN apt-get install -y libatlas-base-dev libopenblas-dev
RUN apt-get install -y python-dev
RUN apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
RUN apt-get install -y git cmake
RUN git clone https://github.com/BVLC/caffe.git
WORKDIR /caffe
RUN cmake -DCMAKE_CXX_FLAGS=-static-libstdc++ -DBLAS=Open -G "Unix Makefiles"
RUN make
RUN make install
CMD ["/bin/bash"]
Troubleshooting
Not found vecLib
MacOSX에서는 BLAS라이브러리를 vecLib로 강제 지정되어 있다.
다른 라이브러리를 사용하기 위하여 cmake/Dependencies.cmake
파일에 있는 BLAS 선택 코드의 if (NOT APPLE)
조건을 약간 수정해야 한다.