Ubuntu16.04安装Caffe(CPU Only)

 

官方安装文档:http://caffe.berkeleyvision.org/installation.html

官方Ubuntu安装文档:http://caffe.berkeleyvision.org/install_apt.html

博客:http://www.linuxidc.com/Linux/2016-09/135034.htm

           http://www.linuxdiyf.com/linux/23093.html

1、安装依赖库

切换到root权限,依次安装:

  1. sudo apt-get install libprotobuf-dev

  2. sudo apt-get install libleveldb-dev

  3. sudo apt-get install libsnappy-dev

  4. sudo apt-get install libopencv-dev

  5. sudo apt-get install libhdf5-serial-dev

  6. sudo apt-get install protobuf-compiler

  7. sudo apt-get install --no-install-recommends libboost-all-dev

CPU Only的情况下,跳过了CUDA相关的安装;

接下来是BLAS:

sudo apt-get install libatlas-base-dev

使用默认Python来建立pycaffe接口,需要安装:

sudo apt-get install python-dev(如果是用python3,需要安装:sudo apt-get install python3-dev)

一些兼容性依赖库:

  1. sudo apt-get install libgflags-dev

  2. sudo apt-get install libgoogle-glog-dev

  3. sudo apt-get install liblmdb-dev

  4. sudo apt-get install python-skimage

2、下载Caffe源码

没有安装git的话需要先装一下git

sudo apt-get install git

下载Caffe源码

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

如果需要Caffe的Python(默认版本,python2.7)接口,切换到caffe下的python目录下,输入以下命令下载python依赖库(先安装pip):

  1. sudo apt-get install python-pip

  2. for req in $(cat requirements.txt); do pip install $req; done

3、编译Caffe

到Caffe文件夹中,拷贝一份Makefile.config.example并重命名成Makefile.config,修改该配置文件:

cp Makefile.config.example Makefile.config

使用文本编辑器打开Makefile.config,因为这里没有配置GPU,所以去掉CPU_ONLY := 1前面的注释;

由于Ubuntu16.04文件结构的变化,#Whatever else you find you need goes here.处要改成下面这样:

  1. # Whatever else you find you need goes here.

  2. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

  3. LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

设置到这里开始编译,make pycaffe,结果报错,错误和numpy相关,重新打开Makefile.config目录,又查找了一下numpy的安装目录,发现对应不上,需要重新设置,需要把原本如下的内容:

  1. # NOTE: this is required only if you will compile the python interface.

  2. # We need to be able to find Python.h and numpy/arrayobject.h.

  3. PYTHON_INCLUDE := /usr/include/python2.7 \

  4. /usr/lib/python2.7/dist-packages/numpy/core/include

更改为:

注意:更改前请看一下前后这两个路径下有没有numpy的安装包,如果没有请执行sudo apt-get install python-numpy 去安装,安装完之后看一下numpy的路径在哪里,再决定要不要改路径

  1. # NOTE: this is required only if you will compile the python interface.

  2. # We need to be able to find Python.h and numpy/arrayobject.h.

  3. PYTHON_INCLUDE := /usr/include/python2.7 \

  4. /usr/local/lib/python2.7/dist-packages/numpy/core/include

之后就是编译(编译前请切换到caffe文件下):

  1. sudo make pycaffe

  2. sudo make all

  3. sudo make test

  4. sudo make runtest

4、测试

测试Caffe的Python接口,切换到caffe/python文件目录下,记录下来当前路径,输入以下命令:

export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

通过打开命令终端,输入“python”命令进入python环境:

Ubuntu16.04安装Caffe(CPU Only)_第1张图片

不能通过python的应用程序或者快捷方式进入python,这样的话会得到下面的错误:

Ubuntu16.04安装Caffe(CPU Only)_第2张图片

如果没有报错,证明安装成功。
上面的方法,一旦关闭终端或者打开新终端则失效,如果放到配置文件中,可以永久有效果,命令操作如下:

  1. 将caffe根目录下的python文件夹加入到环境变量

    先打开配置文件bashrc

    sudo gedit ~/.bashrc
  2. 在文件的最后面python的路径添加:export PYTHONPATH=~/caffe/python:$PYTHONPATH 或者 export PYTHONPATH=/home/steven/caffe/python:$PYTHONPATH
  3. 保存生效:source ~/.bashrc

虽然steven这一层在最终的路径里看不到,但是它是必须写到里面的,否则是不完整的路径,会报错

Ubuntu16.04安装Caffe(CPU Only)_第3张图片

关于如何切换python2和python3

切换成python2.7.12,请执行下面的命令(任意目录下)

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python

Ubuntu16.04安装Caffe(CPU Only)_第4张图片

切换成python3.5.2,请执行下面的命令(任意目录下)

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.5 /usr/bin/python

Ubuntu16.04安装Caffe(CPU Only)_第5张图片

切换成python3.5.2 后:

5.安装python3.5.2相关的包以便适用于caffe

1).安装pip3

     sudo apt-get install python3-pip

2).升级必要的包

进入CAFFE文件夹, 进入里面的PYTHON文件夹,然后输入

for req in $(cat requirements.txt); do pip3 install $req; done

使用pip3查看已安装包的版本:pip3 list

使用pip3更新包:pip3 install --upgrade 要升级的包名。

此处pip3 install --upgrade matplotlib

注意此处升级matplotlib库之后,版本没有变化,还是2.2.2,但是问题解决了

-打开Makefile.config

在这里加上注释(禁用python2.7):

# 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

这里去掉注释(启用python3):

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

                /usr/lib/python3/dist-packages/numpy/core/include

这里的“/usr/lib/python3/dist-packages/numpy/core/include”中的python,到底是python3还是python3.5以及在哪个文件夹,根据实际情况找到后配置,python3的numpy可以通过pip3 install numpy来安装

Ubuntu16.04安装Caffe(CPU Only)_第6张图片

关于python3.5.2下导入caffe还是没有实现,后续再研究.

安装opencv:

1:先升级

sudo apt-get  update
sudo apt-get  upgrade

2:后安装一些安装openCV需要的包

sudo apt-get install build-essential cmake pkg-config

pkg-config是编译opencv的时候需要的,cmake是为了camke的时候用

sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev

这些包都是为了OPENCV从硬盘里读入各种格式的图片

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev

为了读入视频

sudo apt-get install libgtk-3-dev

为了使用opencv里的highgui模块

sudo apt-get install libatlas-base-dev gfortran

为了优化opencv里的各种功能

sudo apt-get install python2.7-dev

为了安装python开发头和库

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
安装另外的一些必要的库

以上步骤完成后,我们进入opencv目录,创建build目录:

mkdir build

 

  像这样:

    Ubuntu16.04安装Caffe(CPU Only)_第7张图片

  进入build目录,开始编译,执行(注意这是一个命令并且后面的两个点不能少):

cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

你可能感兴趣的:(机器学习)