Skip to content

Instantly share code, notes, and snippets.

@titipata
Last active January 27, 2022 03:27
My notes on how to install caffe on Ubuntu

Caffe Installation

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 and dpkg 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 type make. Afterward, run deviceQuery under ~/NVIDIA_CUDA-6.5_Samples

  • install BLAS (from libopenblas) and git (and unzip for opencv)

sudo apt-get install libopenblas-dev git unzip
  • install opencv, follow this site where I use this bash script to install opencv
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 (in caffe/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 to CPU in /caffe/examples/mnist/lenet_solver.prototxt
  • More installation: pip install protobuf

###To do list

@sriharsha0806
Copy link

when i am running make runtest i am getting following error,
ERROR: something wrong with flag 'flagfile' in file '/home/sriharsha/gflags-master/src/gflags.cc'. One possibility: file '/home/sriharsha/gflags-master/src/gflags.cc' is being linked both statically and dynamically into this executable.
make: *** [runtest] Error 1
sriharsha@sriharsha-Inspiron-3521:~/caffe$

how to resolve it?

@arindam31
Copy link

After finishing above steps, When i import lmdb in python, the import fails. Any ideas ? I am on ubuntu 14.04. Although my caffe is working fine.

@SudhakarReddyPeddinti
Copy link

For python interface of caffe. to import caffe in python, run export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

@qaz99
Copy link

qaz99 commented Jul 12, 2017

nitdelhi@nitdelhi-HP-Compaq-Elite-8300-SFF:/caffe$ cp Makefile.config.example Makefile.config
nitdelhi@nitdelhi-HP-Compaq-Elite-8300-SFF:
/caffe$ make all
CXX .build_release/src/caffe/proto/caffe.pb.cc
In file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0:
.build_release/src/caffe/proto/caffe.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is
#error This file was generated by a newer version of protoc which is
^
.build_release/src/caffe/proto/caffe.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update
#error incompatible with your Protocol Buffer headers. Please update
^
.build_release/src/caffe/proto/caffe.pb.h:14:2: error: #error your headers.
#error your headers.
^
In file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0:
.build_release/src/caffe/proto/caffe.pb.h:23:35: fatal error: google/protobuf/arena.h: No such file or directory
#include <google/protobuf/arena.h>
^
compilation terminated.
make: *** [.build_release/src/caffe/proto/caffe.pb.o] Error 1
nitdelhi@nitdelhi-HP-Compaq-Elite-8300-SFF:~/caffe$

@sammilei
Copy link

sammilei commented Mar 4, 2018

get the same error as @qaz99

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment