Skip to content

Instantly share code, notes, and snippets.

@handlerug
Last active July 4, 2020 05:16
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save handlerug/338a46609657dbba217e678e09fdb26e to your computer and use it in GitHub Desktop.
Save handlerug/338a46609657dbba217e678e09fdb26e to your computer and use it in GitHub Desktop.
Install Caffe with Makefile, cmake, and with OpenBLAS

Install Caffe with Makefile, cmake, and with OpenBLAS

Prerequisites

$ sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt install --no-install-recommends libboost-all-dev
$ sudo apt install libatlas-base-dev libopenblas-dev
$ sudo apt install libgflags-dev libgoogle-glog-dev liblmdb-dev

Clone the repository:

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

For Debian:

~/caffe $ sudo ln -s /usr/lib/<YOUR_ARCH>/libhdf5_serial.so /usr/lib/<YOUR_ARCH>/libhdf5.so
~/caffe $ sudo ln -s /usr/lib/<YOUR_ARCH>/libhdf5_serial_hl.so /usr/lib/<YOUR_ARCH>/libhdf5_hl.so
~/caffe $ find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;

Makefile.config

~/caffe $ cp Makefile.config.example Makefile.config
~/caffe $ vim Makefile.config

CPU_ONLY := ON
BLAS := open

~/caffe $ make all -j8

CMake

~/caffe $ mkdir cmake_build
~/caffe $ cd cmake_build
~/caffe/cmake_build $ cmake .. -DBUILD_SHARED_LIB=ON -DCPU_ONLY=ON -DBLAS=open
~/caffe/cmake_build $ cmake . -DCMAKE_BUILD_TYPE=Debug
~/caffe/cmake_build $ make -j8 && make install

Post-install

~/caffe $ protoc src/caffe/proto/caffe.proto --cpp_out=.
~/caffe $ mkdir include/caffe/proto
~/caffe $ mv src/caffe/proto/caffe.pb.h include/caffe/proto

Using with CMake

cmake_minimum_required(VERSION 2.8)

set(PROJECT InnoMobile)
project(${PROJECT})

if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -std=c++11 -Wall -g -lboost_system -lglog")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")

find_package(OpenCV)
find_package(Caffe)

add_definitions(${Caffe_DEFINITIONS})

set(LIBS ${LIBS}
	pthread
)

aux_source_directory(sources SOURCES)
set(SOURCES ${SOURCES}
	${PROJECT}.cpp
)

include_directories(
	sources
	${OpenCV_INCLUDES}
	${Caffe_INCLUDE_DIRS}
)

add_executable(${PROJECT} ${SOURCES})

target_link_libraries(${PROJECT}
	${LIBS}
	${OpenCV_LIBS} 
	${Caffe_LIBRARIES}
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment