[转]caffe在ubuntu14.04下安装配置,改错,换包记录

喝一杯咖啡真难——我的caffe在ubuntu14.04下安装配置,改错,换包记录

转载地址:http://blog.csdn.net/wingfox117/article/details/46278001
 

目录(?)[+]

 

        由于课题换成了关于分类的方向,所以跟着世界最火的潮流走,咱们只能做DML。伯克利的 caffe可能是比较流行的框架之一,它运算速度快,可以使用Python,matlab进行使用,更可以使用CUDA进行运算(当然这也是它难以安装的内容之一)。

先看caffe的主页的介绍,当然不翻墙不让看:https://docs.google.com/presentation/d/1UeKXVgRvvxg9OUdh_UiC5G71UMscNPlvArsWER41PsU/edit#slide=id.p

国内墙了google,只好使用百度查,十分感谢下列或者转发,或者是原创的几位博主。

http://www.haodaima.NET/art/2823705

http://www.cnblogs.com/platero/p/3993877.html

http://www.tuicool.com/articles/EzANjy7

http://94it.Net/a/jingxuanboke/2015/0321/492734.html

http://blog.csdn.net/liuxiabing150/article/details/42503389

http://blog.csdn.net/kuaitoukid/article/details/40395617

当然,我可能运气比较背,或者是我的Linux用的不熟,或者make命令问题,或者包问题,楼上各位的问题我基本都碰到了,另外他们没碰到的问题我也碰到了(比如qt包没有,比如OpenCV的安装脚本不适合我的,反正是各种不适应啊 ),终于在一周左右的时间内解决了各种问题,成功运行了caffe的mnist例程。

当然routine的内容我能用别人的还是复用了,当然他们没遇到的错误,只好我自己来写,本来是个懒人,但是这次不记录还是说不过去了。原谅我当时没有记录出错的代码给大家搜索,因为当时心情真的不佳啊,呵呵。

我的基本步骤也按照以下几个步骤:

第一部分 Linux安装

第二部分 nVidia驱动和CUDA Toolkit的安装和调试

第三部分  MKL的安装

第四部分 Opencv的安装
第五部分 Caffe的安装和测试
第六部分 Python安装和调试
第七部分 Matlab安装和调试   

第一部分 Linux安装

这个就不多讲了,找个u盘,找个ubuntu14.04的iso,找到winiso工具把iso烧制到u盘上,在你windows下划分一个不低于80G的区,删除了这个分区,看别人的教程装吧,这个没有什么特别的。

第二部分 nVidia驱动和CUDA Toolkit的安装和调试

首先你想用cuda必须有一块独显,而且必须是nvidia家的,不然就跳过这个步骤,当然我的是,so to be continue

2.1 安装build-essentials

sudo apt-get install build-essential

2.2   删除默认显示驱动
Nouveau是一个开源的显卡驱动,Ubuntu 14.04 默认安装了,但是它会影响nVidia驱动的安装,所以只有请他回老家了,sorry!

1. 将nouveau添加到黑名单,防止它启动

$ cd /etc/modprobe.d $ sudo vi nvidia-graphics-drivers.conf  写入:blacklist nouveau
保存并退出: wq! 检查:$ cat nvidia-graphics-drivers.conf   2. 对于:/etc/default/grub,添加到末尾。 $ sudo vi /etc/default/grub 末尾写入:rdblacklist=nouveau nouveau.modeset=0 保存并退出: wq! 检查:$ cat /etc/default/grub   3. 官网提供的操作:
$ sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
然后重新生成initrd文件
$ sudo dracut /boot/initramfs-$(uname -r).img $(uname -r) $ sudo update-initramfs -u  
上面那条是nVidia官方提供的命令,不知道为什么在我这里会提示dracut是不存在的命令,也许是版本问题,或者少了什么包,不过无所谓,第二条命令也可以搞定,应该是一样的功能。

2.3  安装cuda,因为这个.run文件包含了驱动,所以我们可以不用分开安装了,直接大锅炒。

1. 首先在BIOS设置里选择用Intel显卡来显示或作为主要显示设备

然后【点击此链接】 下载CUDA 6.5.

2. 进入Ubuntu, 按 ctrl+alt+F1 进入tty, 登录tty后输入如下命令

sudo service lightdm stop

该命令会关闭lightdm。如果你使用 gdm或者其他的desktop manager, 请在安装NVIDIA驱动前关闭他。

3. 在纯命令行里边运行你下载的cuda6.5的run文件。

或者需要你用 sudo chmod +x这个文件,从而获得运行权限。

然后就是一路的 空格 到 100% yes 路径 yes之类,这个文件包含以下三个需要安装的内容:

1 CUDA安装包:

2 NVIDIA驱动:

3 SAMPLE包:

安装完以后在你个人的环境里设置

sudo gedit /home/yuername/.ba*

默认安装路径的话,就加入:

       PATH=/usr/local/cuda-6.5/bin:$PATH
       export PATH
       保存后更新链接
       sudo ldconfig
       而后保存你cuda的设置

/etc/ld.so.conf.d/加入文件 cuda.conf, 内容如下

       /usr/local/cuda-6.5/lib64

执行下列命令使之立刻生效

       sudo ldconfig

可选-》安装CUDA SAMPLE

首先安装下列依赖包

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev

然后用下述命令安装sample文件

sudo ./cuda-samples-linux-6.5.14-18745345.run

完成后编译Sample文件, 整个过程大概10分钟左右

cd /usr/local/cuda-6.5/samples
sudo make

 全部编译完成后, 进入 samples/bin/x86_64/linux/release, sudo下运行deviceQuery

sudo ./deviceQuery

如果出现下列显卡信息, 则驱动及显卡安装成功:

复制代码
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 670"
  CUDA Driver Version / Runtime Version          6.5 / 6.5
  CUDA Capability Major/Minor version number:    3.0
  Total amount of global memory:                 4095 MBytes (4294246400 bytes)
  ( 7) Multiprocessors, (192) CUDA Cores/MP:     1344 CUDA Cores
  GPU Clock rate:                                1098 MHz (1.10 GHz)
  Memory Clock rate:                             3105 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 524288 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Bus ID / PCI location ID:           1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = GeForce GTX 610
Result = PASS
 


到这一步,你以为cuda装完了?no,no,no

还有呢

2.4 cuda补全安装计划

装好所谓的cuda安装包以后,在终端输入

nvcc -V

不出意外的话应该会提示,nvcc没有安装,其实就是,nvidia-cuda-toolkit的编译器没有安装完整,总之,根据提示继续就好了
$ sudo apt-get install nvidia-cuda-toolkit
楼上有人写过这个问题,说一杯咖啡在手就搞定,可是我……
发现居然没装成功,为什么?包的依赖关系形成了死锁,我擦,擦,擦啊
一堆乱搜后发现这个博客
http://blog.csdn.net/wishchin/article/details/44833635
解决了这类的问题

先安装一个aptitude, 即在终端输入:

sudo apt-get install aptitude
安装完之后,使用此工具安装nvidia-cuda-toolkit可用。即在终端输入:

sudo aptitude install nvidia-cuda-toolkit

卸载了依赖的包,把剩余的东西安装上去了。

第三部分  MKL的安装

首先下载并安装英特尔® 数学内核库 Linux* 版MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings,不收费的只好下载Student版的,先申请,然后会立马收到一个邮件(里面有安装序列号),打开照着下载就行了。

(如果没有可以安装OpenBLAS代替)解压安装包,下面有一个install_GUI.sh文件, 执行该文件,会出现图形安装界面,根据说明一步一步执行即可。

注意: 安装完成后需要添加library路径

sudo gedit /etc/ld.so.conf.d/intel_mkl.conf

在文件中添加内容

/opt/intel/lib
/opt/intel/mkl/lib/intel64

注意把路径替换成自己的安装路径。 编辑完后执行(这里我手贱了一次,改了默认的地址,怎么都链接不到,不知道为何,老实点还是按照默认的来吧,所以把你的ubuntu的/目录设置大一点空间为好)

sudo ldconfig


安装这个很随意,问题不大,但注意要默认路径较好。

第四部分 Opencv的安装

这个尽量不要手动安装, Github上有人已经写好了完整的安装脚本:https://github.com/jayrambhia/Install-OpenCV

下载该脚本,进入Ubuntu/2.4 目录, 给所有shell脚本加上可执行权限

chmod +x *.sh

然后安装最新版本 (当前为2.4.9)

sudo ./opencv2_4_9.sh

脚本会自动安装依赖项,下载安装包,编译并安装OpenCV。整个过程大概20小时左右。

NO,NO,NO

所以我先换到windows下载了opencv2.9的文件包,拉到了github的下载的make文件的目录下然后注释了他的这几行脚本

#wget -O OpenCV-2.4.9.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download
#echo "Installing OpenCV 2.4.9"
#unzip opencv-2.4.9.zip

注意,中途可能会报错1

找不到qt!!!!

这个问题根本就没人说,我擦呀……仔细看他的make脚本有 with_qt=on

没qt,好吧下载qt去!这里我下了完整的qt包

下载地址如下:

http://www.qt.io/download-open-source/

安装之后记得设置qt的环境

sudo gedit /etc/ld.so.conf.d/qt5.conf

在文件中添加内容

/opt/Qt5.4.1/5.4/gcc_64/lib
不然编译还是找不到qt

保存后继续

sudo ldconfig
然后编译又遇见了错误2
opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization

解决方法在此:http://code.opencv.org/issues/3814  下载 NCVPixelOperations.hpp 替换掉opencv2.4.9内的文件, 重新build。我看到作者也给出了这个修改意见。

第五部分 Caffe的安装和测试

1.首先安装依赖项Ubuntu14.04用户执行

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

其他版本用户参考官方说明:http://caffe.berkeleyvision.org/installation.html

2.google的依赖

1. Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:
$ tar zxvf glog-0.3.3.tar.gz
$ ./ configure
$ make
$ sudo make install

3.然后 从github上下载好caffe库: https://github.com/BVLC/caffe ,解压

然后进入目录

sudo cp makefile.config.example makefile.config

修改

CUDA_DIR := /usr/local/cuda-6.5(你自己的目录)

BLAS := mkl

然后make all

发现错误 make: protoc:命令未找到 
make: *** [.build_release/src/caffe/proto/caffe.pb.h] 错误 127

那就下载protobuf吧,在github下载,解压 https://github.com/google/protobuf 

运行

[ruby] view plain copy
 
  1. <code><span style="font-family:宋体; font-size:14px"><span class="variable">$ </span>.<span class="regexp">/autogen.sh</span></span></code>  

然后他又依赖与gtest 我擦了又是google的东西……下载要科学 csdn上居然有人上传了,不错!

再次运行,提示错误

./autogen.sh: 40: ./autogen.sh: autoreconf: not found 

原因是没安装 automake 工具

运行命令安装:sudo apt-get install autoconf automake libtool

再一次./autogen.sh,成功!然后依次运行以下命令

$ ./configure
$ make
$ make check
$ make install
然后继续make all

./include/caffe/common.hpp:5:27: fatal error: gflags/gflags.h: 没有那个文件或目录。

安装gflags

这里继续安装gflags: https://github.com/schuhschuh/gflags/archive/master.zip 下载。解压

cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make 
sudo make install
按好之后,接着make all

继续错误,没有安装lmdb

安装lmdb

接着make,提示错误lmdb没装

Git clone git://gitorious.org/mdb/mdb.git 

cd mdb/libraries/liblmdb 

make && make install 

之后继续make all

等待了15分钟左右之后,激动人心的场面出现了,done了……

之后你 继续 

make test

make runtest

等done了之后,继续下载测试mnist数据集合

1. 数据预处理

可以用下载好的数据集,也可以重新下载,我网速快,这里就偷懒直接下载了,具体操作如下:
新版的caffe只能在他的caffe-master主目录下操作,不然会报错
sudo sh ./data/mnist
/get_mnist.sh

2. 重建LDB文件,就是处理二进制数据集为Caffe识别的数据集,以后所有的数据,包括jpe文件都要处理成这个格式

sudo sh ./examples/mnist
/create_mnist.sh
生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹,这里包含了LDB格式的数据集

3. 训练mnist
sudo sh ./examples/mnist
/train_lenet.sh
等待数秒之后会发现迭代了1000次,以及输出的数据等。

第六部分 Python安装和调试

1. 安装caffe必须的一些依赖项:
$ 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 

 
2. 配置路径,编辑Makefile.config
PYTHON_INCLUDE := /usr/include/python2.7
                                    /usr/lib/python2.7/dist-packages/numpy/core/include
PYTHON_LIB := /usr/local/lib

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

3. 这里非常重要的是,为了确保支持Caffe Notebook里的程序,需要使用到IDE环境,并且支持iPython输出。 

4 编译Python wrapper

    make pycaffe 

第七部分 Matlab安装和调试  

1. Caffe提供了MATLAB接口, 有需要用MATLAB的同学可以额外安装MATLAB。 安装教程请自行搜索。 

2. 安装完成后添加图标 http://www.linuxidc.com/Linux/2011-01/31632.htm

     sudo vi /usr/share/applications/Matlab.desktop

3.编译Matlab wrapper

    执行如下命令

    make matcaffe

至此,所有的安装步骤告一段落,大家可以下载咖啡自带的demo,跑一跑玩了。

本文基本是参照caffe的官方安装文档:http://caffe.berkeleyvision.org/installation.html 以及各位博友提供的参考步骤进行。
如有雷同纯属参考,如有错误之处,望各位不吝赐教。3ks
原文地址:https://www.cnblogs.com/Crysaty/p/6283373.html