Caffe Ubuntu 18.04 GPU Matlab 2015 环境配置

matlab+caffe-gpu on Ubuntu 18.04

step1: install and crack Matlab2015b for linux

(note that Matlab2017 won't work, haven't try 2016, 2015 is recommended).

step2: install python.

step3: install caffe dependencies:

sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler; 
sudo apt-get install -y libatlas-base-dev; 
sudo apt-get install -y --no-install-recommends libboost-all-dev; 
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev; 
sudo apt-get install -y python-pip python-dev python-numpy python-scipy; 
sudo apt-get install -y libopencv-dev;
sudo apt-get install graphviz
sudo pip install pydot

step4: get caffe source from github:

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

install required python moudles:
1.change directory to CAFFEPATH/python

  1. enter the command below
pip install -r requirements.txt

step5: install cuda:

   1.sudo sh cuda_10.1.105_418.39_linux.run
   2.Follow the command-line prompts
   you can also use another version of cuda if you like. If you are to install a cpu version of caffe, then the nvidia driver and cudnn isn't necessary.
   Otherwise, nvidia driver and corresponding version of cudnn are required.

add following lines to ~/.bashrc or ~/.zshrc

# change the version number of your cuda
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-9.0/bin:$PATH

ldconfig参考解决方案

update the dynamic library

sudo ldconfig /usr/local/cuda-9.0/lib64
# or 
sudo ldconfig /usr/local/cuda/lib64 # cuda is often created symbolicaly from cuda-x.0

step6: modify 'Makefile.config'

in caffe path as the way you want to install it. and make all. I will attach my 'Makefile.config' file for your reference.
Note that you can't always use my file, some pathes need to be customly set according to your own environment.

change directory to CAFFEPATH and do:

cd caffe/

sudo make all
sudo make test
sudo make runtest
sudo make pycaffe
sudo make matcaffe
sudo make pytest
sudo make mattest
sudo echo 'export PYTHONPATH=CAFFEPATH/python' >> ~/.bashrc
   if everything turns out fine, then goto step8.
   if some error about libstdc++.so.6 occur after 'sudo make mattest', you will need to do step7.

step7: solve the mismatch of cuda and matlab

create soft link to solve the problem caused by version mismatch of cuda and matlab.

# change the path to your own.
cd Matlab_2015b/ # enter the home folder of the matlab
cd sys/os/glnxa64/
sudo mv libstdc++.so.6 libstdc++.so.6_bak
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6  $(pwd)/libstdc++.so.6

step8: modify the SfSnet code to make it work.

   if hdf5 version mismatch, add this at the beginning of the m file:
   setenv('HDF5_DISABLE_VERSION_CHECK','1')

final: enjoy!

Makefile.config

  1. 修改里面的matlab路径
## Refer to http://caffe.berkeleyvision.org/installation.html
# Contributions simplifying and improving our build system are welcome!

# cuDNN acceleration switch (uncomment to build with cuDNN).
# USE_CUDNN := 1

# CPU-only switch (uncomment to build without GPU support).
 CPU_ONLY := 1

# uncomment to disable IO dependencies and corresponding data layers
 USE_OPENCV := 0
 USE_LEVELDB := 0
 USE_LMDB := 0
# This code is taken from https://github.com/sh1r0/caffe-android-lib
# USE_HDF5 := 0

# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary)
#   You should not set this flag if you will be reading LMDBs with any
#   possibility of simultaneous read and write
# ALLOW_LMDB_NOLOCK := 1

# Uncomment if you're using OpenCV 3
# OPENCV_VERSION := 3

# To customize your choice of compiler, uncomment and set the following.
# N.B. the default for Linux is g++ and the default for OSX is clang++
# CUSTOM_CXX := g++

# CUDA directory contains bin/ and lib/ directories that we need.
CUDA_DIR := /usr/local/cuda
# On Ubuntu 14.04, if cuda tools are installed via
# "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
# CUDA_DIR := /usr

# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
CUDA_ARCH :=    -gencode arch=compute_30,code=sm_30 \
        -gencode arch=compute_35,code=sm_35 \
        -gencode arch=compute_50,code=sm_50 \
        -gencode arch=compute_52,code=sm_52 \
        -gencode arch=compute_60,code=sm_60 \
        -gencode arch=compute_61,code=sm_61 \
        -gencode arch=compute_61,code=compute_61

# BLAS choice:
# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlas
BLAS := atlas
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
# BLAS_INCLUDE := /path/to/your/blas
# BLAS_LIB := /path/to/your/blas

# Homebrew puts openblas in a directory that is not on the standard search path
# BLAS_INCLUDE := $(shell brew --prefix openblas)/include
# BLAS_LIB := $(shell brew --prefix openblas)/lib

# This is required only if you will compile the matlab interface.
# MATLAB directory should contain the mex binary in /bin.
 MATLAB_DIR := /usr/local/MATLAB/R2015b
# MATLAB_DIR := /Applications/MATLAB_R2012b.app

# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
        /home/lixin/.local/lib/python2.7/site-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
        # $(ANACONDA_HOME)/include/python2.7 \
        # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

# Uncomment to use Python 3 (default is Python 2)
# PYTHON_LIBRARIES := boost_python3 python3.5m
# PYTHON_INCLUDE := /usr/include/python3.5m \
#                 /usr/lib/python3.5/dist-packages/numpy/core/include

# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB := /usr/lib
# PYTHON_LIB := $(ANACONDA_HOME)/lib

# Homebrew installs numpy in a non standard path (keg only)
# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include
# PYTHON_LIB += $(shell brew --prefix numpy)/lib

# Uncomment to support layers written in Python (will link against Python libs)
 WITH_PYTHON_LAYER := 1

# Whatever else you find you need goes here.
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

# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies
# INCLUDE_DIRS += $(shell brew --prefix)/include
# LIBRARY_DIRS += $(shell brew --prefix)/lib

# NCCL acceleration switch (uncomment to build with NCCL)
# https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0)
# USE_NCCL := 1

# Uncomment to use `pkg-config` to specify OpenCV library paths.
# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
# USE_PKG_CONFIG := 1

# N.B. both build and distribute dirs are cleared on `make clean`
BUILD_DIR := build
DISTRIBUTE_DIR := distribute

# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
# DEBUG := 1

# The ID of the GPU that 'make runtest' will use to run unit tests.
TEST_GPUID := 0

# enable pretty build (comment to see full commands)

转载于:https://www.cnblogs.com/superzou/p/10613268.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值