ubuntu16.04 安装caffe(cpu)比较靠谱的教程


本文是第一次在Ubuntu 16.04上安装Caffe(CPU Only)的过程。主要参考了以下链接:https://blog.csdn.net/nwsuaf_uestc/article/details/80182976
https://blog.csdn.net/muzilinxi90/article/details/53673184
https://blog.csdn.net/hemancute/article/details/80206853

一、安装依赖库

首先执行以下命令

sudo apt-get update

安装caffe之前需要安装一些依赖库:
注意:输入下面的每一条代码时,不要急着回车,否则,会出现“中止”的问题。
解决方法:不要直接复制粘贴后回车,等几秒之后再回车。
在这里插入图片描述

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

二、下载caffe

可直接使用Git下载caffe,如果没有Git,请先安装Git,作者新装的Ubuntu16.04没有Git,所以先安装Git,执行如下语句:

sudo apt-get install git

安装结束后下载caffe,执行以下命令:

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

这样你就可以在根目录下看到有个caffe目录了

三、编译caffe(均在caffe目录下运行

1.进入caffe目录

cd caffe/

2.生成Makefile.config文件,这里是将caffe目录下自带的Makefile.config.example文件复制一份并更名为Makefile.config,命令如下:

cp Makefile.config.example Makefile.config

此时目录下就会有Makefile.config文件

3.修改配置Makefile.config 文件

1)编辑Makefile.config文件:

sudo gedit Makefile.config

或者直接进入文件内打开文件进行修改。
2) 去掉CPU_ONLY前面的#号
在这里插入图片描述
使得CPU_ONLY := 1

3)配置引用文件路径(主要是HDF5的路径问题)
原来的路径配置如下图:
在这里插入图片描述
修改为如下图:

在这里插入图片描述
新增的内容为:

/usr/include/hdf5/serial 
/usr/lib/x86_64-linux-gnu/hdf5/serial

4.在Makefile文件的第181行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m 
变成 
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

5.执行编译

make all  若出现错误,要用make clean之后再编译
make test  
make runtest 

编译完成之后出现如下界面:
在这里插入图片描述

四 、编译Python接口

1.安装pip以及numpy:

sudo apt-get install python-pip  
sudo apt-get install python-numpy

2.安装python接口依赖库:

1)在安装依赖库前,需要先安装gfortran编辑器:

sudo apt-get install gfortran  

然后安装依赖库,首先进入caffe目录下的python文件中:

cd caffe/python 

最好先升级一下pip

pip install --upgrade pip

安装依赖库(时间较长):

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

可能会出现:

问题一

之后,这一步可能会出现问题:
在这里插入图片描述
解决的方法是(若无此问题,则跳过):

pip install --upgrade pip

问题二
可能还会出现另一个错误(若无,则忽略)
升级了pip,再次使用pip 安装相关的python包的时候就出现以下错误:

ImportError: cannot import name main

解决:pip文件在usr/bin目录下,cd进去。

cd /usr/bin
sudo gedit pip

进行以下修改,把下面的三行

from pip import main
if __name__ == '__main__':
  sys.exit(main())

换成下面的三行

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

然后问题就解决了。
再执行一次:

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

可能会出现:
问题三
在这里插入图片描述

Could not install packages due to an EnvironmentError: [Errno 13] 权限不够: 		'/usr/local/lib/python2.7/dist-packages/cloudpickle-0.6.1.dist-info'
Consider using the `--user` option or check the permissions.

在caffe目录下的python文件中,打开requirements.txt
在这里插入图片描述
权限不足,在安装时要在install后加上 “ –user
发现需要重新安装scikit-image
因此,使用pip命令来进行权限安装

pip install --user scikit-image

之后还有类似的权限不足情况,又重新安装了

pip install --user ipython
pip install --user python-dateutil

再执行一次:

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

问题四

pandas 0.23.4 has requirement python-dateutil>=2.5.0, but you'll have 
python-dateutil 1.5 which is incompatible.
matplotlib 2.2.3 has requirement python-dateutil>=2.1, but you'll have 
python-dateutil 1.5 which is incompatible.

解决:
但其实python-dateutil已经安装为2.7.3版本。
仍在caffe目录下的python文件中,打开requirements.txt

sudo gedit requirements.txt

将该句

python-dateutil>=1.4,<2

版本号掉,不加版本号默认为最新的版本

python-dateutil

然后

:/home/xxx/caffe/python#

sudo pip install -r requirements.txt

搞定。
2)指定iPython版本

sudo pip install ipython==5.3.0

安装完后,执行下面一条语句,该语句的作用是检查依赖库是否都已经安装成功,如果成功会显示requirement already saitisfied,如果未成功会继续安装:

sudo pip install -r requirements.txt  

3.添加环境变量:

打开配置文件bashrc:

sudo gedit ~/.bashrc

或者直接打开该文件也可以,在文件的最后面添加:

export PYTHONPATH=/home/xxx/caffe/python:$PYTHONPATH

XXX为Username
结果如下:

保存文件后关闭,然后输入下面语句,使环境变量生效:

source ~/.bashrc  

4.编译python接口:(在caffe目录下)

make pycaffe 

编译完后,若无错误提示,则说明编译成功。

5.验证python接口:

进入python环境:

python  

引入caffe包:

import caffe 

若出现问题:

>>>import caffe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named caffe

原因在于环境变量的添加出错。
如果引入caffe包无其他显示,如下图所示:
在这里插入图片描述
说明python接口编译成功,至此整个caffe安装编译的过程就全部结束了。

五 、测试

运行MNIST:
1.按照官网先准备数据集:

 cd caffe/                        #将终端定位到Caffe根目录
./data/mnist/get_mnist.sh         #下载MNIST数据库并解压缩
./examples/mnist/create_mnist.sh  #将其转换成Lmdb数据库格式

2.编辑lenet_solver的solver_mode模式从GPU改为CPU:

vim ./examples/mnist/lenet_solver.prototxt
#改为solver_mode: CPU

3.训练模型

cd $CAFFE_ROOT
./examples/mnist/train_lenet.sh

能训练了,打印训练参数网络结束后却提示:已放弃,核心已转存
这时候只需要在./example/mnist/train_lenet.sh前加个sudo就解决问题了
4.训练结果
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值