安装配置Ubuntu14.04+Caffe
(+OpenCV+Python+CPU-only) 记录
【作者:Wu Ping。时间:20180428。】
本人已经安装很多次的Caffe了:从开始的初探到出现问题的重新安装,或者电脑系统重装后的再次安装,或者因为不同的电脑版本、不同的Ubuntu版本、软件的不同安装方式等等原因,每一次安装都会有不同的“不顺利经历”,顺次解决问题即可。虽然遇到的问题不尽相同,但是总体流程基本相同。
“安装过程,因为平台不同、设备不同、操作者不同,会遇到各种奇怪的问题和报错信息,请善用Caffe官网的Issues和caffe-user论坛,以及Google和Baidu。参考本指南,请下载最新版caffe-master,新版本很多文件已经变更。”
一、目录
(1)Linux系统:Ubuntu 14.04 (64位)【这里安装教程略】
(2)安装开发所需要的一些基本包及安装caffe依赖项
(3)安装ATLAS for Ubuntu
(4)安装OpenCV
(5)编译Caffe
(6)测试Caffe是否安装成功
(7)配置Pycaffe
(8)测试Pycaffe接口是否配置成功
二、安装包准备(下载)
(1)Ubuntu 14.04下载网址:http://www.ubuntu.com/download/desktop 。
(2)OpenCV下载地址:1官网上下载https://opencv.org/releases.html 。2从sourceforge上http://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.10/opencv-2.4.10.zip 。
(3) Caffe下载地址:https://github.com/BVLC/caffe 。
三、开始安装【图文说明】
(1)Linux系统:Ubuntu 14.04 (64位)【略】
(2)安装开发所需要的一些基本包及安装caffe依赖项。
首先,安装开发所需要的一些基本包:sudo apt-get install build-essential。如果出现essential包不可用的情况,可以执行下列命令解决:sudo apt-get update。
接着,安装其他依赖项Ubuntu14.04用户执行: sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencvdev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdbdev protobuf-compiler
如果后面安装caffe出现“没有什么文件或者找不到什么目录”:make all。则sudo apt-get update,再继续单独执行找不到的那个相应文件。比如:
# sudo apt-get install libatlas-base-dev
# sudo apt-get install libprotobuf-dev
# sudo apt-get install libleveldb-dev
# sudo apt-get install libsnappy-dev
(3)安装ATLAS for Ubuntu
执行命令:sudo apt-get install libatlas-base-dev。注:ATLAS, MKL,或OpenBLAS都可以,我这里选择安装ATLAS。安装atlas简单易行。
(4)安装OpenCV
第一种方法(之前成功安装,这次安装没成功,不知道何因):这个尽量不要手动安装, Github上有人已经写好了完整的安装脚本:
https://github.com/jayrambhia/Install-OpenCV。下载该脚本,解压".zip"文件,
1安装2.4.10 (推荐):https://gist.github.com/bearpaw/c38ef18ec45ba6548ec0
1. 下载安装脚本 https://github.com/bearpaw/Install-OpenCV
2. 进入目录: Install-OpenCV/Ubuntu/2.4
进行Ubuntu/2.4目录,对所有脚本增加可执行权限:sudo chmod +x *.sh
3. 安装依赖项: # Install-OpenCV/Ubuntu
# sh ./dependencies.sh
4. 执行脚本 sh /2.4/opencv2_4_10.sh 或者 sh /2.4/opencv2_4_9.sh
即一:
$ git clone https://github.com/bearpaw/Install-OpenCV
$ cd Install-OpenCV/Ubuntu/2.4
$ sh ./opencv2_4_10.sh
编译过程很慢,中间我还报过一次错,不得不重新来了一次。如果觉得难度不够的话,可以选择官网的安装包:http://opencv.org/,我这里是根据大神编译过的版本进行安装的。
即二:
# cd caffe
# sudo git clone https://github.com/jayrambhia/Install-OpenCV
# cd Install-OpenCV/Ubuntu
# sudo sh dependencies.sh
# cd 2.4
# sudo sh opencv2_4_10.sh
2安装2.4.9(不推荐)
这块儿时间比较长,保证网络连接,需要联网下载安装包,大概三十分钟,记不清了。。
第二种方法(手动安装,这次成功了。)详见附《ubuntu14.04中安装opencv2.4.10》。
(5)编译Caffe
上述基本环境准备好后,下载:https://github.com/BVLC/caffe后,进入caffe目录,复制一份Makefile.config 命令:cp Makefile.config.example Makefile.config。
然后,根据自己环境修改相应内容:
1 取消 CPU_ONLY := 1前面的注释。
2. cuda 安装路径改为自己的路径 : CUDA_DIR := /usr/local/cuda-6.5
3. 配置路径:实现caffe对python和matlab接口的支持。
这里仅仅在CPU下配置环境所以只修改 CPU_ONLY := 1。
接下来就可以编译Caffe:
1,sudo make all -j2
2,sudo make test
3,sudo make runtest
Make all 后的截图如下:
Make test后的截图如下:
Make runtest后的截图如下:
(6)测试Caffe是否安装成功
以mnist的为例,检验caffe是否装成功,以下命令都在CAFFE根目录下运行:
1.准备数据
sh ./data/mnist/get_mnist.sh
sh ./examples/mnist/create_mnist.sh
2.训练模型:
sh ./examples/mnist/train_lenet.sh
需要修改sudo vi lenet_solver.prototxt 先进入命令模式,使用a进入编辑模式,修改完之后,使用esc退出编辑模式,进入末行模式,再使用“:wq”保存修改并退出(“:q!”为退出但不保存修改):
# solver mode: CPU or GPU
solver_mode: CPU
3.测试模型:
sh ./examples/mnist/test_lenet.sh
新建test_lenet.sh:
1. #!/usr/bin/env
2. "空行"
3.
./build/tools/caffe test model=examples/mnist/lenet_train_test.prototxt weights=examples/mnist/lenet_iter_10000.caffemodel iterations 100
(7)配置Pycaffe
第一步:安装Python-caffe接口的依赖包。
第一种方法(直接执行安装requirement里面的包,没成功)。确保前面的:1,sudo make all -j2;2,sudo make test;3,sudo make runtest等不出错,如果某一行报错之后想要重试,建议先make clean再重新开始。更新安装依赖。
cd caffe
cat python/requirements.txt | xargs -L 1 sudo pip install
确定使用的是anaconda提供的python环境,然后进入caffe/python, 执行下列命令,
确保pip已经安装
sudo apt-get install python-pip
for req in $(cat requirements.txt); do pip install $req; done #python运行需要的库。
再次回到caffe根目录我们可以执行:
在caffe根目录的python文件夹下,有一个requirements.txt的清单文件,上面列出了需要的依赖库,按照这个清单安装就可以了。
在安装scipy库的时候,需要fortran编译器(gfortran),如果没有这个编译器就会报错,因此,我们可以先安装一下。
回到caffe的根目录,然后执行安装代码:
cd ~/caffe
sudo apt-get install gfortran
cd ./python
for req in $(cat requirements.txt); do pip install $req; done
安装完成以后,再次回到caffe根目录我们可以执行:
sudo pip install -r python/requirements.txt
就会看到,安装成功的,都会显示Requirement already satisfied, 没有安装成功的,会继续安装。
第二种方法(直接安装,这次成功)。按照Requirement.txt里面的手动安装,执行如下命令:
sudo apt-get install Cython python-numpy python-scipy python-skimage python-matplotlib ipython python-h5py python-leveldb python-networkx python-nose python-pandas python-gflags python-protobuf python-gflags python-yaml
sudo apt-get install python-sklearn protobuf-c-compiler protobuf-compiler
make pycaffe 出现问题如下:
因为存在低版本的,所以总是报错,本人预想卸载低版本的后再升级,而后通过下方法也可以实现:
sudo pip
install six --upgrade
--target="/usr/lib/python2.7/dist-packages"
类似的:
sudo pip install leveldb --upgrade
--target="/usr/lib/python2.7/dist-packages"
第二步:加入PythonPath。
第一种方法:添加~/caffe/python到$PYTHONPATH。
$ gedit ~/.bashrc #vim 或者gedit,打开bashrc
export PYTHONPATH=/home/usrname/caffe/python:$PYTHONPATH #添加到文件最后,本人是export PYTHONPATH=/home/wp/caffe/python:$PYTHONPATH。
$ source ~/.bashrc #使更改生效。这样,在其他地方打开python,也可以import caffe了。
第二种方法:添加~/caffe/python到$PYTHONPATH。
$ sudo gedit /etc/profile
用sudo,只用gedit /etc/profile修改后无法保存
# 末尾添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
我的是:export PYTHONPATH=/home/wp/CAFEE/caffemaster/python:$PYTHONPATH
#export PYTHONPATH=自己caffe文件夹下的python路径,一定要是自己的路径!!!
# 用完整路径,不要用~
$ source /etc/profile #使之生效
(8)测试Pycaffe接口是否配置成功
编译python接口:$ make pycaffe -j8
度娘,有说这么就是配置好了,也有说这么不是配置好的,是依赖项没有装全。本人记得之前配置过,貌似也不是这样子的,几经五六次的重新【配置加解决问题都是这样的结果,无可奈何不影响用就行了,继续。
运行python,进入caffe/python ,运行
$ python2.7
Python 2.7.12 (default, Jul 1 2016, 15:12:24)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>>
测试1,任意路径下执行:
[code]$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>>
测试2:
wp@ubuntu:~$ ipython
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
Type "copyright", "credits" or "license" for more information.
IPython 1.2.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: import caffe
In [2]:
输入python,如果显示如红框所示,说明当前python是系统默认的python。 说明刚才添加的环境变量没有起作用,需要用命令激活:source .bashrc 如果显示如蓝框所示,说明当前python用的是Anaconda里的python。安装成功!例如结果:
附录:
具体地,在《ubuntu14.04中安装opencv2.4.10》。
安装索引:
第一部分---安装
1. 下载源码2.4.10
2. 解压 $unzip opencv-2.4.10.zip
3. 创建release目录
$cd opencv-2.4.9
$mkdir release
4. 装依赖包(网查教程)
5. 进release文件夹
$cd release
6. 编译安装(耗时有点长哦)
$cmake
$make all
$make install
第二部分---测试是否安装成功
1. 建立一个test.cpp文件
2. 写一个cmake的makefile(CMakeLists.txt)
3. 编译+运行+例子测试
上述可参考https://blog.csdn.net/wb4916/article/details/54021717。
具体实现图文过程:
1. 先下载OpenCV的源码。从sourceforge上 http://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.10/opencv-2.4.10.zip 。或者官网上下载https://opencv.org/releases.html 。
2. 解压到任意目录。
终端命令$ unzip opencv-2.4.10.zip,或者直接提取。
3. 进入源码目录,创建release目录
$ cd opencv-2.4.10
$ mkdir release
4. 可以看到在OpenCV目录下,有个CMakeLists.txt文件,需要事先安装一些软件
$ sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
5. 进入release目录,安装OpenCV是所有的文件都会被放到这个release目录下
$ cd release
6. cmake编译OpenCV源码,安装所有的lib文件都会被安装到/usr/local目录下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
检查一下:wp@wp-ms-7519:~/opencv-2.4.10/release$ cmake --version
cmake version 2.8.12.2
7. 安装
$ sudo make install
8. 测试,在某个目录下建立一个test.cpp文件
#include <cv.h>
#include <highgui.h>
using namespace cv;
int main(int argc, char* argv[])
{
Mat image;
image = imread(argv[1], 1);
if (argc != 2 || !image.data)
{
printf("No image data ");
return -1;
}
namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", image);
waitKey(0);
return 0;
}
9. 写一个cmake的makefile,也叫CMakeLists.txt
project(test)
find_package(OpenCV REQUIRED)
add_executable(test test)
target_link_libraries(test ${OpenCV_LIBS})
cmake_minimum_required(VERSION 2.8)
10. 编译+运行
(请注意camke的后面还有一个点)
cmake .
make
这样就得到了一个可执行文件test。
11. 找一张xx.jpg图片做个测试,注意要和上面那个test可执行文件放在同一目录下面,这里名字取的是test.jpg。
12. 在可执行文件下执行$ ./test test.jpg。 如果能看到照片,那就表示成功。