第一章 引言

在ubuntu16.04安装caffe,几乎折腾了一个月终于成功;做一文章做纪要,以便日后查阅。总体得出的要点是:首先,每操作一步,必须知道如何检验操作的正确性;笔者的多次失误是因为配置错误,但疏于检查引起;当然有些错误是ubuntu本身的bug;笔者不知,只能来来回回‘鬼打墙’直到某日发现;另一个经验只谈是对每一个支撑尽量知道它是用来干什么的,多百度几下没有坏处;最后一个经验是,对系统的基本结构要要框架了解,比如,通过apt-get的软件放在哪里,通过make install的软件又放在哪里;还有,编译的时候各种文件支持和路径支持在什么地方,这些诸多要素只能是点点滴滴积累。

本次安装目标:

1)保证是GPU版本的;

2)保证对Python支持;

第二章 安装ubuntu16-0-4

2.1 安装

这个过程基本没啥说的,有三个要点;

1)需要选择中文(否则就等着重装吧!);

2)要有WIFI先连上,这样省点时间;

3)安装好以后,进入系统; 立刻执行

>>>sudo apt-get update

>>>sudo apt-get upgrade

2.2 可能出现的出错提示和解决

出现:AppStream cache update completed, but some metadata was ignored due to errors;或

error message due to invalid AppStream file

这是ubuntu本身的bug,参考文;笔者是通过更换数据源反复执行sudo
apt-get update和sudo
apt-get upgrade完成,注意,这步很重要,很多编译错误从这里产生。

出现:

下列软件包的版本将保持不变:
 
gnome-software gnome-software-common liboxideqt-qmlplugin
liboxideqtcore0
  liboxideqtquick0 oxideqt-codecs snapd
ubuntu-core-launcher ubuntu-software
升级了
0
个软件包,新安装了
0
个软件包,要卸载
0
个软件包,有
9
个软件包未被升级

解决:sudo
apt-get install gnome-software

sudo
apt-getinstall
liboxideqt-qmlplugin

sudo
apt-get install
snapd

一般不必装9个就可以,因为互相依赖,每装一个,同时将依赖包装好。

2.3安装质量检验

sudo
apt-get update

sudo
apt-get upgrade

最后出现下面提示就OK了:

升级了
0
个软件包,新安装了
0
个软件包,要卸载
0
个软件包,有
0
个软件包未被升级,

到此,ubuntu安装成功!

第三章 安装Nvidia驱动程序,让屏幕绚起来

3.1
安装英伟达驱动

   
sudo
add-apt-repository ppa:graphics-drivers/ppa   
(回车后继续)
   
sudo
apt-get update
   
sudo
apt-get install nvidia-367
    
sudo
apt-get install mesa-common-dev
   
sudo
apt-get install freeglut3-dev

3.2
重新启动操作系统

之后重启系统让GTX1060显卡驱动生效 。

进入全新界面,立刻执行

sudo
apt-get update 和
sudo
apt-get upgrade  这一对指令。

3.3
安装质量检验

1检查指令:

运行:nvidia-smi
和nvidia-settings
分别看到效果;

**
Message: PRIME: No offloading required. Abort

**
Message: PRIME: is it supported? No

这种提示属于正常。

2
检查程序;测试OpenGL:

#include
<GL/glut.h>

void
init(void)

{

glClearColor(0.0,
0.0, 0.0, 0.0);

glMatrixMode(GL_PROJECTION);

glOrtho(-5,
5, -5, 5, 5, 15);

glMatrixMode(GL_MODELVIEW);

gluLookAt(0,
0, 10, 0, 0, 0, 0, 1, 0);

return;

}

void
display(void)

{

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0,
0, 0);

glutWireTeapot(3);

glFlush();

return;

}

int
main(int argc, char *argv[])

{

glutInit(&argc,
argv);

glutInitDisplayMode(GLUT_RGB
| GLUT_SINGLE);

glutInitWindowPosition(0,
0);

glutInitWindowSize(300,
300);

glutCreateWindow("OpenGL
3D View");

init();

glutDisplayFunc(display);

glutMainLoop();

return
0;

}

编译程序:gcc
-o test test.c -lGL -lGLU -lglut

test:执行后显示窗口。

3.4
另一法--安装Nvidia显卡驱动

首先,禁用可能导致问题的开源驱动,编辑/etc/modprobe.d/blacklist.conf

sudo vim /etc/modprobe.d/blacklist.conf

添加以下内容:

blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist nvidiafb
blacklist rivatv

卸载干净所有安装过的nvidia驱动;

sudo apt-get remove  --purge nvidia-*

执行以下命令添加驱动源;

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update

以下步骤建议Ctrl+Alt+F1切换到tty1执行;

sudo service lightdm stop

sudo apt-get install nvidia-375 nvidia-settings nvidia-prime
sudo nvidia-xconfig sudo apt-get install mesa-common-dev //安装缺少的库
sudo apt-get install freeglut3-dev sudo update-initramfs -u
sudo reboot

重启应该就不会遇到循环登录的问题;

第四章 安装cuda8.0

4.1
下载安装cuda8.0

下载
cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb

将它存入目录/home/tmp,并进入>>>cd /home/tmp,接着执行:

>>>sudo
dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb

>>>sudo
apt-get update

>>>sudo
apt-get install cuda

4.2
配置cuda环境

配置环境变量1:

执行

>>>
sudo gedit ~/.bashrc

进入gedit编辑器,在文件的尾部,加入:

export
PATH="/usr/local/cuda-8.0/bin:$PATH"

export
LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"

更周全的写法是:

if 
[ ! -n "$PATH" ] ;then
                             
export PATH="/usr/local/cuda-8.0/bin"
                        
else
                              
export PATH="/usr/local/cuda-8.0/bin:$PATH"
                       
fi

if  [ ! -n "$LD_LIBRARY_PATH" ]
;then
                                 
export
LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64"
                      
else
                                 
export
LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
                       
fi

存盘退出;执行:

>>>
source ~/.bashrc

(此处最好用
echo
$PATH echo $LD_LIBRARY_PATH 检查一下有没有错误,非常重要!!)

配置环境变量2:
                 
执行:

>>>
sudo gedit /etc/profile
                  
在打开的文件末尾加入:
                       
export PATH="/usr/local/cuda/bin:$PATH"     
(等号后不可有空格)

更严密的写法:

if 
[ ! -n "$PATH" ] ;then
                 
export PATH="/usr/local/cuda/bin"
          
else
                 
export PATH="/usr/local/cuda/bin:$PATH"
            
fi

创造链接:
                  
>>> sudo gedit
/etc/ld.so.conf.d/cuda.conf
在打开的文件末尾加入:(此时为空文件)

/usr/local/cuda/lib64

然后执行:

>>>
sudo ldconfig

4.3检查cuda的安装

进入cuda的安装路径,

>>>
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery

编译:

>>>
sudo   make

>>>
sudo   ./deviceQuery  
(执行编译后的测试程序)

显示:

一整屏幕的信息;最后一句是:

       Result = PASS

此时说明cuda安装成功,因为后面的操作可能破坏cuda,操作前后经常检查cuda是否OK.

第五章
安装
CUDNN5.1python

5.1安装cudnn部分

下载cudnn,费时很长,建议下载后保存。

解压:

tar
-zxvf cudnn-8.0-linux-x64-v5.1.tgz   

此步骤后,生成cuda目录;

进入cuda后,有include

lib64
两个子目录
。进入include目录:

    sudo
cp cudnn.h /usr/local/cuda/include/

#
复制头文件

退出include;

进入lib64目录:

            sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库
进入目标目录: cd /usr/local/cuda/lib64/
修改文件软链接:
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接
(源目录中有两个软链接,libcudnn.so libcudnn.so.5,将他们删除,建立你具体版本5.1.5的软链接)
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
给所有用户增加这些文件的读权限;

5.2升级python部分

1 基本python升级

因为ubuntu16已经默认安装了python,所以,出于用python开发的目的,现将必须的python的相关包安装;除此之外,需要将IDE开发平台pycharm安装进去;

sudo apt-get install python-numpy

sudo apt-get install python-scipy

sudo apt-get install python-pandas

sudo apt-get install python-sklean

(sudo apt-get install python-matplotlib

sudo apt-get install python-statsmodels此二者自然装好了)

2基本pycharm升级

按照官网给出的安装指导【2】进行安装。

进入下载目录:

$ cd Downloads/

解压:

$ tar xfz pycharm-*.tar.gz

删除原压缩文件:

$ rm  pycharm-*.tar.gz

进入执行文件目录:

$ cd pycharm-community-3.4.1/bin/

执行安装

$
./pycharm.sh

3测试python的环境

from pylab import *
X = np.linspace(-np.pi, np.pi, , endpoint=True)
C, S = np.cos(X), np.sin(X)
plot(X, C)
plot(X, S)
show()

第六章 关于OPENCV

opencv可能偶然装上了,但是编译opencv可以检查整个系统的配置过程是否正确,这里先编译opencv3.1以验证环境的正确与否。也就说这里将能否编译通过opencv作为测试本机工作环境的标尺。可以发现,通过安装opencv的支持包,发现系统有许多支持包没有搭建完成。

sudo dpkg --purge cuda-repo-ubuntu1504-7-5-local

6.1 检查opencv

经过上面的安装,opencv可能已经附带安装好,检查如下:

apt-cache search opencv

6.2安装opencv所需的库(编译器、必须库、可选库)

转载请说明 http://www.cnblogs.com/llxrl/p/4471831.html

  • GCC 4.4.x or later

  • CMake 2.6 or higher

  • Git

  • GTK+2.x or higher, including headers (libgtk2.0-dev)

  • pkg-config

  • Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)

  • ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev

  • [optional] libtbb2 libtbb-dev

  • [optional] libdc1394 2.x

  • [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev

 [compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394--dev

sudo apt-get install libqt4-dev libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev  libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

6.3编译opencv

从官网下载最新opencv源码(2.4以上)http://sourceforge.net/projects/opencvlibrary/

将opencv放至任意目录/home/myname/tmp,

unzip opencv- 3.0. 0-rc1. zip

cd opencv- 3.0. 0

修改modules/cudalegacy/src/graphcuts.cpp文件:

sudo gedit /tmp/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp

将:

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)|

改成:

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)||(CUDART_VERSION>=8000)

存盘退出。

创建编译目录:

mkdir release
cd release

编译:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_OPENGL=ON -D WITH_QT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON  ..
make -j4 sudo make install

6,4测试opencv

1) 创建工作目录

mkdir ~/opencv-lena
cd ~/opencv-lena
gedit DisplayImage.cpp

2) 编辑如下代码

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -;
}
Mat image;
image = imread( argv[], );
if ( !image.data )
{
printf("No image data \n");
return -;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey();
return ;
}

3) 创建CMake编译文件

gedit CMakeLists.txt

写入如下内容

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

4) 编译

cd ~/opencv-lena
cmake .
make

5) 执行

此时opencv-lena文件夹中已经产生了可执行文件DisplayImage,下载lena.jpg放在opencv-lena下,运行

./DisplayImage lena.jpg

6) 结果

aaarticlea/jpeg;base64,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" alt="" name="图像1" width="200" height="225" align="bottom" border="0" />

第七章pythonopencv的关系

7.1 python调用opencv

opencvpython基本独立,但是,为了在python下调用opencv,在opencv编译的时候,就多出一项cv2.so这个库,将这个库移到python的外部包路径上/usr/lib/python2.7/dist-packages,就可以调用opencv

ubuntu系统默认安装了python,为了建立opencvpython的关系,使python能够使用opencv,则必须安装cv2库,有如下安装:

sudo apt-get install python-opencv

这样python目录下多出一个:

/usr/lib/python2.7/dist-packages/cv2.x86_64-linux-gnu.so

建立软链接:

cd /usr/lib/python2.7/dist-packages

sudo ln -s cv2.x86_64-linux-gnu.so cv2.so

python中可以import cv2进行调用了。

7.2
在caffe环境中,python的支撑包

caffe的github下载caffe源码包,
进入caffe-master下的python目录.执行如下命令:

cat requirements.txt

Cython>=0.19.2

numpy>=1.7.1

scipy>=0.13.2

scikit-image>=0.9.3

matplotlib>=1.3.1

ipython>=3.0.0

h5py>=2.2.0

leveldb>=0.191

networkx>=1.8.1

nose>=1.3.0

pandas>=0.12.0

python-dateutil>=1.4,<2

protobuf>=2.5.0

python-gflags>=2.0

pyyaml>=3.10

Pillow>=2.3.0

six>=1.1.0

以上包还有它们的依赖,需要以下操作安装:

     for req in $(cat requirements.txt); do pip install $req; done 
由于依赖包存在先后顺序,首次操作某些包的依赖排在该包的后面安装,因而该包安装无法完成;遇到这种情况让它继续进行,当安装完成后;再次执行该指令,直到全部安装完成;一般需要重复执行两次以上才能完成。

第八章
安装编译
Caffe

8.1
安装caffe基本依赖

sudo
apt-get update
sudo apt-get upgrade
sudo apt-get install -y
build-essential

sudo
apt-get install -y cmake

sudo
apt-get install -y git

sudo
apt-get install -y pkg-config

sudo
apt-get install -y libprotobuf-dev

sudo
apt-get install -y libleveldb-dev

sudo
apt-get install -y libsnappy-dev

sudo
apt-get install -y libhdf5-serial-dev

sudo
apt-get install -y 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

sudo
apt-get install -y libgoogle-glog-dev

sudo
apt-get install -y liblmdb-dev
sudo apt-get install -y
python-pip
sudo apt-get install -y python-dev
sudo apt-get
install -y python-numpy

sudo
apt-get install -y python-scipy
sudo apt-get install -y
libopencv-dev

以上安装除了Python相关的,要保证全部成功,必要时可以修改下载源文件,笔者用阿里源成功。

8.2安装caffe基本依赖

终于来到这里了!进入caffe-master目录,复制一份Makefile.config.examples

执行:

cp 
Makefile.config.example Makefile.config

sudo
gedit Makefile.config

##
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

#
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 lines for compatibility.

CUDA_ARCH
:= -gencode arch=compute_20,code=sm_20 \

-gencode
arch=compute_20,code=sm_21 \

-gencode
arch=compute_30,code=sm_30 \

-gencode
arch=compute_35,code=sm_35 \

-gencode
arch=compute_50,code=sm_50 \

-gencode
arch=compute_50,code=compute_50

#
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_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 \

/usr/lib/python2.7/dist-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.

#old:INCLUDE_DIRS
:= $(PYTHON_INCLUDE) /usr/local/include

#old:LIBRARY_DIRS
:= $(PYTHON_LIB) /usr/local/lib /usr/lib

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
/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

#
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)

Q
?= @

8.3编译

>>>
make all -j4

cd
caffe-master //
此时位置应该处于caffe文件夹下

>>>make
all -j4             
// j4
代表计算机cpu4个核,因此可以多线程一起make,这样make的速度会快很多。

>>>make
runtest
-j4 //
检测编译项目

[
OK ] BiasLayerTest/1.TestBackwardEltwiseInPlace (0 ms)

[
RUN ] BiasLayerTest/1.TestForwardBroadcastMiddleInPlace

[
OK ] BiasLayerTest/1.TestForwardBroadcastMiddleInPlace (0
ms)

[
RUN ] BiasLayerTest/1.TestBackwardBroadcastMiddleInPlace

[
OK ] BiasLayerTest/1.TestBackwardBroadcastMiddleInPlace (0
ms)

[
RUN ] BiasLayerTest/1.TestGradientBroadcastBegin

[
OK ] BiasLayerTest/1.TestGradientBroadcastBegin (67 ms)

[----------]
20 tests from BiasLayerTest/1 (551 ms total)

[----------]
Global test environment tear-down

[==========]
2085 tests from 277 test cases ran. (321710 ms total)

[
PASSED ] 2085 tests.

>>>make
pycaffe             
//
如果以后用python来开发的话必须执行这一句,

yan@YM:~/caffe-master$
make pycaffe

CXX/LD
-o python/caffe/_caffe.so python/caffe/_caffe.cpp

touch
python/caffe/proto/__init__.py

PROTOC
(python) src/caffe/proto/caffe.proto

>>>make
distribute          
//
一般不管你是否用python,都会执行这一句

cp
-r src/caffe/proto distribute/

#
add include

cp
-r include distribute/

mkdir
-p distribute/include/caffe/proto

cp
.build_release/src/caffe/proto/caffe.pb.h
distribute/include/caffe/proto

#
add tool and example binaries

cp
.build_release/tools/caffe.bin
.build_release/tools/upgrade_net_proto_binary.bin
.build_release/tools/convert_imageset.bin
.build_release/tools/finetune_net.bin
.build_release/tools/train_net.bin
.build_release/tools/device_query.bin
.build_release/tools/test_net.bin
.build_release/tools/extract_features.bin
.build_release/tools/upgrade_net_proto_text.bin
.build_release/tools/net_speed_benchmark.bin
.build_release/tools/compute_image_mean.bin
.build_release/tools/upgrade_solver_proto_text.bin distribute/bin

cp
.build_release/examples/cpp_classification/classification.bin
.build_release/examples/mnist/convert_mnist_data.bin
.build_release/examples/siamese/convert_mnist_siamese_data.bin
.build_release/examples/cifar10/convert_cifar_data.bin
distribute/bin

#
add libraries

cp
.build_release/lib/libcaffe.a distribute/lib

install
-m 644 .build_release/lib/libcaffe.so.1.0.0-rc3 distribute/lib

cd
distribute/lib; rm -f libcaffe.so; ln -s libcaffe.so.1.0.0-rc3
libcaffe.so

#
add python - it's not the standard way, indeed...

cp
-r python distribute/python

常见问题:

1、提示make:protoc:命令未找到,这是因为protoc未安装,只需安装就行。

>>>sudo
apt-get install protobuf-c-compiler protobuf-compiler

 

问题1

/usr/bin/ld:
找不到
-lopencv_imgcodecs

collect2:
error: ld returned 1 exit status

Makefile:566:
recipe for target '.build_release/lib/libcaffe.so.1.0.0-rc3' failed

make:
*** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1

安装Caffe纪实的更多相关文章

  1. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  2. Caffe + Ubuntu 14.04 64bit + 无CUDA(linux下安装caffe(无cuda)以及python接口)

    安装Caffe指导书 环境: Linux 64位 显卡为Intel + AMD,非英伟达显卡 无GPU 一. 安装准备工作 1. 以管理员身份登录 在左上角点击图标,搜索terminal(即终端),以 ...

  3. Ubuntu 14.04上安装caffe

    本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...

  4. [caffe]linux下安装caffe(无cuda)以及python接口

    昨天在mac上折腾了一天都没有安装成功,晚上在mac上装了一个ParallelDesktop虚拟机,然后装了linux,十分钟就安装好了,我也是醉了=.= 主要过程稍微记录一下: 1.安装BLAS s ...

  5. 20160512关于mac安装caffe的记录

    记得2015年在mac系统上安装过一次caffe,非常顺利,但是最近群里许多同学反映mac安装caffe出现了各种问题,同时我也在帮助别人安装caffe的时候也遇到了一些坑,不再像以前这么顺利了.估计 ...

  6. docker安装caffe

    [最近一直想要学习caffe,但是苦苦纠结于环境安装不上,真的是第一步都迈不出去,还好有docker的存在!下面,对本人如何利用docker安装caffe做以简单叙述,不属于教程,只是记录自己都做了什 ...

  7. 【记录】在MAC上安装caffe

    ---恢复内容开始--- 最近尝试在MAC(OS X 10.11 El Capitan)上安装Caffe 以及Python接口遇到了一些问题但是官方安装教程上并没有提出这些问题的解决办法搜索了很久(主 ...

  8. [转]centos 6.5安装caffe

    centos 6.5安装caffe 原文地址:http://blog.csdn.net/wqzghost/article/details/47447377   总结:在安装protobuf,hdf5等 ...

  9. Caffe初学者第一部:Ubuntu14.04上安装caffe(CPU)+Python的详细过程 (亲测成功, 20180524更新)

    前言: 最近在学习深度学习,最先要解决的当然是开源框架的环境安装了.之前一直在学习谷歌的Tensorflow开源框架,最近实验中需要跟别人的算法比较,下载的别人的代码很多都是Caffe的,所以想着搭建 ...

随机推荐

  1. JAVA将汉字转换为全拼以及返回中文的首字母,将字符串转移为ASCII码

    import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseT ...

  2. C# 图片处理方法 整理汇总

    /// <summary> /// 图片转为base64编码字符 /// </summary> /// <param name="path">图 ...

  3. Erlang-接口技术

    系统的构建一定会设计到简历接口,让他与不同的语言的应用程序之间简历系统的联系.这就叫做erlang的接口技术. 接口技术的三种实现方法: 1.让程序以外部操作系统进行的形式在Erlang虚拟机以外运行 ...

  4. React Native 安卓 程序运行报错: React Native version mismatch(转载)

    这个问题已经得到解决,参照stackoverflow上的问题:https://stackoverflow.com/que...这个问题的原因就处在Android工程中app/build.gradle中 ...

  5. 德州扑克AI--Programming Poker AI(译)

    前言: 最近在研究德州扑克的AI, 也想由浅入深的看下, 在网上找了一圈, 发现很多文章都提到了一篇文章: Programming Poker AI. 仔细拜读了一下, 觉得非常不错. 这里作下简单的 ...

  6. Redis配置文件 redis.conf 解读(一)

    # Redis configuration file example# redis配置文件模板# Note on units: when memory size is needed, it is po ...

  7. 2018.5.2 file结构体

    f_flags,File Status Flag f_pos,表示当前读写位置 f_count,表示引用计数(Reference Count): dup.fork等系统调用会导致多个文件描述符指向同一 ...

  8. springMvc---跨服务器文件上传(实测总结)

    序言: 该案例是采用springMvc实现跨服务器图片上传功能,其中用到的主要类和工具有:CommonsMultipartResolver.jquery.form.js.如果要实现多个文件上传,只需要 ...

  9. 深入学习Motan系列(三)——服务发布

    袋鼠回头看了看文章,有些啰嗦,争取语音简练,不断提高表达力!袋鼠奋起直追! 注:此篇文章,暂时为了以后时间线排序的需要,暂时发表出来,可是仍然有许多地方需要改写.自己打算把服务端发布,客户端订阅都搞定 ...

  10. asp.net服务器控件button先执行js再执行后台的方法

    服务器控件增强了在后台处理的能力,但是在前台有时候也被受到了限制. 关于button这个服务器控件,我一直想减少它向服务器提交数据.那些检测,还是在客户端实现就好了.这就需要javascript,但是 ...