Ubuntu安装Caffe环境

本文详细介绍如何在Ubuntu系统中搭建深度学习环境,包括安装CUDA、cuDNN、Caffe及OpenCV等关键组件,并解决了安装过程中的常见问题。

一、安装依赖

 

1.公共依赖

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
 安装过程中如果出现failed to start session,解决办法为

sudo apt-get install ubuntu-desktop
sudo apt-get install --reinstall ubuntu-desktop
sudo reboot

 

2.BLAS依赖项

sudo apt-get install libatlas-base-dev
    

3.安装谷歌glog和gflags和lmdb依赖项

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

二.安装python

sudo apt-get install python
sudo apt-get install python-dev
sudo apt-get install python-numpy
sudo apt-get install ipython
sudo apt-get install ipython-notebook
sudo apt-get install python-sklearn
sudo apt-get install python-skimage
sudo apt-get install python-protobuf

三、安装CUDA和cudnn

安装cuda的方式有哪些?

  • 方法一:官网下载cuda开发包的二进制安装包进行安装。

  • 方法二:官网下载cuda开发包的deb文件进行安装。

版本选择问题

  • 根据个人需求和操作系统来决定,显卡驱动版本。

  • cuda6.5是一个分界点,cuda6.5支持compute_11,compute_12. etc. compute_1X系列架构;从cuda7.0开始,不支持compute_1X系列架构,最低是compute_20架构。

  • cuda对显卡驱动有要求。比如cuda7.5需要显卡驱动最低版本是nvidia-352;cuda7.0需要显卡驱动最低版本是nvidia-336;cuda6.5需要显卡驱动最低版本是nvidia-33*;其他的记不清楚啦。因此,结合自己操作系统可以安装的NVIDIA显卡驱动来决定选择哪个版本的cuda。

为什么安装cudnn?

  • cudnn可以简单的理解为CUDa cNN,即在GPU上做卷积运算。最近几年,深度学习很火,尤其是CNN(卷积神经网络)。通过cudnn,可以极大的提高CNN训练速度。简单的说,实用GPU是为了快,实用cudnn是为了更快。

 安装完cuda之后,需要配置cuda环境变量

 打开bashrc文件

 vim ~/.bashrc

 在bashrc中添加如下配置并保存,路径需要修改为实际安装所在路径。

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

五、安装OpenCV

 本文中OpenCV版本为3.1.0。

官网上下载OpenCV并将其解压到你要安装的位置,假设解压到了/usr/local/opencv

1 unzip opencv-3.1.0.zip
2 sudo cp ./opencv-3.1.0 /usr/local
3 sudo mv opencv-3.1.0 opencv

安装前准备,创建编译文件夹:

1 cd /usr/local/opencv
2 mkdir build
3 cd build

配置:

1 sudo apt install cmake
2 sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

编译:

sudo make -j8 

-j8表示并行计算,根据自己电脑的配置进行设置,配置比较低的电脑可以将数字改小或不使用,直接输make。

以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:

sudo make install

测试opencv:

1 mkdir ~/opencv-test  
2 cd ~/opencv-test  
3 gedit DisplayImage.cpp  

编辑如下代码:

复制代码
 1 #include <stdio.h>  
 2 #include <opencv2/opencv.hpp>  
 3 using namespace cv;  
 4 int main(int argc, char** argv )  
 5 {  
 6     if ( argc != 2 )  
 7     {  
 8         printf("usage: DisplayImage.out <Image_Path>\n");  
 9         return -1;  
10     }  
11     Mat image;  
12     image = imread( argv[1], 1 );  
13     if ( !image.data )  
14     {  
15         printf("No image data \n");  
16         return -1;  
17     }  
18     namedWindow("Display Image", WINDOW_AUTOSIZE );  
19     imshow("Display Image", image);  
20     waitKey(0);  
21     return 0;  
22 }  

在安装过程中碰到了一些问题,这里也做一些整理。
(1)OpenCV和Cuda版本问题.
编译过程中出现
/usr/local/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat
解决方法为
sudo gedit /usr/local/opencv/modules/cudalegacy/src/graphcuts.cpp
将
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
修改为
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000) 
(2)error: #error Please include the appropriate gl headers before including cuda_gl_interop.h
 解决方法为找到头文件

 sudo gedit /usr/local/cuda-8.0/include/cuda_gl_interop.h

 修改如下

/*
#if defined(__arm__) || defined(__aarch64__)
#ifndef GL_VERSION
#error Please include the appropriate gl headers before including cuda_gl_interop.h
#endif
#else
#include <GL/gl.h>
#endif
 */
#include <GL/gl.h>

四、安装caffe

 

(1)https://github.com/BVLC/caffe下载caffe

下载完成后,会在家目录下的下载里找到caffe-master.zip,用unzip命令解压到家目录下,然后重命名为caffe.

2)复制Makefileconfig

sudo cp Makefile.config.example Makefile.config

3)打开并修改配置文件:

sudo gedit Makefile.config #打开Makefile.config文件 

根据个人情况修改文件:

a.若使用cudnn,则

#USE_CUDNN := 1

修改成:

USE_CUDNN := 1

b.若使用的opencv版本是3的,则

#OPENCV_VERSION := 3 

修改为:

OPENCV_VERSION := 3

c.若要使用python来编写layer,则

#WITH_PYTHON_LAYER := 1 

修改为

WITH_PYTHON_LAYER := 1

d.重要的一项 :

将# Whatever else you find you need goes here. 下面的

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

修改为:

1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial  

(4)安装caffe:

make all -j6

(5)测试caffe:

sudo make runtest
测试成功说明安装完成


常见问题:

(1)编译caffe报错并且报找不到 -lippicv
 原因为Opencv未完全编译成功,解决办法为手动下载并重新编译OpenCV。

        下载 ippicv_linux_20151201,并将下载的文件拷贝到OpenCV的目录/usr/local/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e下。

        重新编译并安装     

cmake CMakeLists.txt
make -j6
make install


(2)caffe.pb.h丢失问题

        使用protoc重新编译

         protoc --cpp_out=/usr/local/caffe-master/include/caffe/ caffe.proto

编译成功后将生成的文件拷贝到src/proto下。



   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值