Note on how to install caffe on Ubuntu. Sucessfully install using CPU, more information for GPU see this link
###Installation
- verify all the preinstallation according to CUDA guide e.g.
lspci | grep -i nvidia
uname -m && cat /etc/*release
gcc --version
- install
CUDA
on Ubuntu, following this site to install CUDA. We get.deb
file anddpkg
from CUDA download page (add CUDA path to.bashrc
, see below)
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_6.5-14_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1404_6.5-14_amd64.deb
sudo apt-get update
sudo apt-get install cuda
-
More to do see post installion at this link where we change directory to
~/NVIDIA_CUDA-6.5_Samples
then typemake
. Afterward, rundeviceQuery
under~/NVIDIA_CUDA-6.5_Samples
-
install
BLAS
(from libopenblas) andgit
(andunzip
for opencv)
sudo apt-get install libopenblas-dev git unzip
- install
opencv
, follow this site where I use this bash script to installopencv
wget https://raw.githubusercontent.com/jayrambhia/Install-OpenCV/master/Ubuntu/2.4/opencv2_4_9.sh
chmod +x opencv2_4_9.sh
./opencv2_4_9.sh
- install Anaconda from this link then run
wget http://09c8d0b2229f813c1b93-c95ac804525aac4b6dba79b00b39d1d3.r79.cf1.rackcdn.com/Anaconda-2.1.0-Linux-x86_64.sh
bash Anaconda-2.1.0-Linux-x86.sh
(add Anaconda path to .bashrc
, see below)
- install Boost using this command:
sudo apt-get install libboost-all-dev
- install others by following Caffe documentation
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
- Get latest version of protobuf using
pip
pip install protobuf
- Then clone caffe and follow the instruction
git clone https://github.com/BVLC/caffe
cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python)
make all
make test
make runtest
- Note that we apply this to anaconda according to Caffe issue
rm ~/anaconda/lib/libm.*
- And I also do something like in
/usr/lib/x86_64-linux-gnu/
:
sudo cp libhdf5_hl.so.7 libhdf5_hl.so.8
sudo cp libhdf5.so.7 libhdf5.so.8
(according to this issue on Caffe)
- After that we can make python interface for caffe -
make pycaffe
(incaffe/python
)
###Customization Caffe
- This is what I added to
.bashrc
# CUDA
export PATH=/usr/local/cuda-6.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH
export PATH
# Anaconda
export PATH=/home/ubuntu/anaconda/bin:$PATH
# Caffe Root
export CAFFE_ROOT=/home/ubuntu/caffe
###Error Found
- According to tutorial When running
./examples/mnist/train_lenet.sh
, I got following error:
libdc1394 error: Failed to initialize libdc1394
I0109 02:31:21.168457 30295 caffe.cpp:99] Use GPU with device ID 0
F0109 02:31:21.168894 30295 common.cpp:53] CPU-only Mode: cannot make GPU call.
- Above problem solved by changing
solver_mode: GPU
toCPU
in/caffe/examples/mnist/lenet_solver.prototxt
- More installation:
pip install protobuf
###To do list
- Set python path for caffe so we are able to
import caffe
see more on http://caffe.berkeleyvision.org/tutorial/interfaces.html - See more in IPython notebook example from Caffe
For python interface of caffe. to
import caffe
in python, runexport PYTHONPATH=/path/to/caffe/python:$PYTHONPATH