【如果电脑配置了GPU,那么使用Ubuntu 16.04+caffe+cuda 8.0安装教程】
本文是在新安装的Ubuntu16.04上进行Caffe的安装。
一、检查自己电脑是否具有GPU
通常Caffe在计算时有两种模式可以选择,CPU或GPU,使用GPU处理图像速度会更快,但往往有的计算机没有GPU,配置太低,所以只能选择CPU,作者的电脑不支持GPU,因此选择CPU安装的版本。
输入:
lspci | grep -i nvidia
结果1
如果未显示任何内容,则证明你的电脑不支持GPU。
结果2
如果显示如下内容: 则表明版本是GTX 650,支持GPU,可以去http://developer.nvidia.com/cuda-gpus去验证,支持CUDA,本文只描述CPU模式的caffe安装
二、正式安装
参考链接1:http://blog.youkuaiyun.com/u010193446/article/details/53259294
参考链接2:http://www.linuxidc.com/Linux/2016-09/135034.htm
第一步:安装python环境(Ubuntu环境默安装的python2.7)
PYTHON需要2.7版本,这是操作系统本身已经安装好的. 输入
python2.7 --version
会显示具体的版本号说明安装了.
但是还需要sudo apt-get install python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
(以上所有sudo apt-get在什么文件夹下输入都无所谓.)
sudo apt-get install python-dev //成功
sudo apt install pip//有问题一直显示无法定位软件包
sudo apt-get install python-pip //成功
sudo apt-get install git //成功
第二步:安装开发所需的依赖包
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libprotobuf-dev
libleveldb-dev
libsnappy-dev
libopencv-dev
libboost-all-dev
sudo apt-get install libhdf5-serial-dev
libgflags-dev
libgoogle-glog-dev
liblmdb-dev
protobuf-compiler
sudo apt-get install libatlas-base-dev
第三步:克隆Caffe源代码
当ubuntu中已经有Git就无需下载Git直接输入以下代码
输入
git clone https://github.com.BVLC/caffe.git
结果是:
第四步:安装Caffe
- 修改配置文件,进入caffe文件中
cp MakeFile.config.example MakeFile.config
- 如果只使用cpu的话,修改Makefile.config文件中
sudo gedit Makefile.config
(1). 去掉CPU_ONLY前的#符号
(2). 配置引用路径
将源路径如下图,修改为:
原图
修改后配置文件
修改过程中可能出现:…WARNING:Set document metadata failed….. 无视此提示~
执行编译
出现错误:
/usr/lib/ld:找不到 –lhdf5_hl
/usr/lib/ld:找不到 –lhdf5
此时:
将# Whatever else you find you need goes here.下面的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
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
//这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径
cd /usr/lib/x86_64-linux-gnu 验证
\\然后根据情况执行下面两句:
sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
成功后
sudo make all
sudo make test
sudo make runtest
编译测试成功会显示:
第五步 编译Python接口
参考链接:http://blog.youkuaiyun.com/u011762313/article/details/47262549
(1). sudo apt-get install gfortran(fortan编辑器)
进入caffe/Pyhton中: cd ~/caffe/python
for req in $(requirements.txt); do sudo pip install $req;done
出现错误:
用sudo apt-get python-pip 命令行获取的pip文件可能过时,需要更新pip
安装完成后,输入验证语句
sudo pip install -r requirements.txt
安装成功的,都会显示Requirement already satisfied,没安装成功的,会继续进行安装。
(2). 编译python编程接口
依赖库安装:
sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags cython ipython
3)将caffe根目录下的python文件夹加入到环境变量
先打开配置文件bashrc
sudo gedit ~/.bashrc
在文件的最后面添加
export PYTHONPATH=/home/moqi/caffe/python:$PYTHONPATH(在系统里找到caffe里的python文件,查找地址)
如下图:
注意,这里路径根据每个人电脑则不一样,例如,我的下载的caffe在/home/moqi/下面,所以路径为/home/moqi/caffe/python,你可以自行进入自己的caffe文件夹里的python目录下,输入pwd查看路径。
然后执行更新配置(有时更新不起作用时,可以重启电脑就会有效):
sudo ldconfig
依赖库编译:
cd ~/caffe
sudo make clean
sudo make pycaffe
(3). reboot 重启,测试
python
import caffe
不出现错误信息,caffe就OK啦
第六步 写python测试程序
参考链接:http://blog.youkuaiyun.com/u010193446/article/details/53259856
1. 安装sublime编辑器
sublime-text3的安装命令:
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer
sublime-text2的安装命令:
sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text-dev
安装过程中若出现:无法定位到软件包到sulime-text-installer
只需要更新apt安装源即可
2. 编写测试程序
基于前面编译成功
(1). 下载数据
cd ~/caffe/
./data/mnist/get_mnist.sh
./example/mnist/create_mnist.sh
(2). 修改配置
cd ~/caffe/
sudo gedit ./examples/mnist/lenet_solver.prototxt
修改slover_modle:CPU
(3). 训练模型
cd ~/caffe/
./example/mnist/train_lenet.sh
(4). 结果展示
(5). 程序中可能遇到的问题
能会遇到:
./create_mnist.sh: 17: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found原因1:路径不对
原因2:可执行程序没有编译成功,重新编译,然后执行
sudo make clean
sudo make