Ubuntu16.04 安装配置Caffe

Caffe已经是第三次安装配置了,为什么是第三次呢?因为我实在是低估了深度学习对于硬件的要求。第一次我在自己笔记本上配置的单核,CPU only ...  结果是,样例数据跑了4小时,这还怎么玩?第二次在台式机上,因为台式机比较low,I5处理器4核,没有NVIDIA的GPU。我把别人训练好的模型下载下来,然后自己测试,发现真的成功了,心里小激动~ 然而,当我自己训练模型时,我训练7天.....  关键是7天了还在跑.....

心想,我这个穷逼难道要自己掏钱买个服务器?那怎么可能。还好,老师人非常好,给我找了个服务器~  现在终于是劳资大显身手的时候了。

整个配置过程很长啊,坑多,没有linux基础的就别来了,你会崩溃的。我参考了好几个帖子,基本上每个帖子都有或多或少的问题,文章结尾的时候,我会留下前辈们的文章地址,算是对他们的尊敬和对我帮助的感谢。好,下面切入正题!

电脑配置:

系统:Ubuntu16.04   GPU:NVIDIA Corporation GM107GL [Quadro K620] (提示:在linux下可以通过 lspci | grep -i vga 查看)

安装过程

1.安装相关依赖项

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

2.安装NVIDIA驱动

(1)查询NVIDIA驱动

首先去官网 http://www.nvidia.com/Download/index.aspx?lang=en-us 查看适合自己显卡的驱动并下载:

驱动文件后缀名应当是以.run结尾的。我们要把这个文件移动到家目录下,原因是下面我们要切换到文字界面下,如果放到~/下载 下面,我们没有办法进入下载这个目录(没有中文输入法,且中文全部是乱码)

                 

图1 输入显卡型号                                                                                                                                     图2  显卡驱动搜索结果

我的显卡型号是Quadro K620,系统是linux 64位,按照要求选择后点击search. 图2是搜索结果,点击下载就好了。

我下载后的驱动文件是:NVIDIA-Linux-x86_64-375.20.run

(2)安装驱动

在终端下输入: sudo gedit /etc/modprobe.d/blacklist.conf  

输入密码后在最后一行加上 blacklist nouveau .  这里是将Ubuntu自带的显卡驱动加入黑名单。

在终端输入: sudo update-initramfs -u

重启电脑~
这里要尤其注意,安装显卡驱动要先切换到文字界面,(按Ctrl+Alt+F1~F6).所以,启动电脑后,先进入文字界面。

然后,输入命令 sudo service lightdm stop

现在可以安装驱动了,先进入家目录 cd ~ ,然后: sudo ./NVIDIA-Linux-x86_64-375.20.run,按照提示一步步来~

完成后,再次重启电脑。

安装完成之后输入以下指令进行验证: sudo nvidia-smi ,若列出了GPU的信息列表则表示驱动安装成功。如下图:

3.安装CUDA

CUDA是NVIDIA的编程语言平台,想使用GPU就必须要使用cuda。

(1)下载CUDA

首先在官网上(https://developer.nvidia.com/cuda-downloads)下载CUDA:

(2) 下载完成后执行以下命令:

1 sudo chmod 777 cuda_8.0.44_linux.run
2 sudo  ./cuda_8.0.44_linux.run

注意:执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia367驱动时,一定要选择否:
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装。其余的都直接默认或者选择是即可。

(3)环境变量配置

打开~/.bashrc文件: sudo gedit ~/.bashrc 
将以下内容写入到~/.bashrc尾部:

1 export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
2 export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

(4)测试CUDA的samples

1 cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
2 make
3 sudo ./deviceQuery

如果显示一些关于GPU的信息,则说明安装成功。

4.配置cuDNN
cuDNN是GPU加速计算深层神经网络的库。
首先去官网 https://developer.nvidia.com/rdp/cudnn-download 下载cuDNN,需要注册一个账号才能下载。下载版本号如下图:

下载cuDNN5.1之后进行解压:

sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz 

进入cuDNN5.1解压之后的include目录,在命令行进行如下操作:

cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include  #复制头文件

再将进入lib64目录下的动态文件进行复制和链接:

cd ..
cd lib64
sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库
cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5    #删除原有动态文件
sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5  #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so      #生成软链接

5.安装opencv3.1
从官网(http://opencv.org/downloads.html)下载Opencv,并将其解压到你要安装的位置,假设解压到了/home/opencv。

1 unzip opencv-2.4.13.zip
2 sudo cp ./opencv-2.4.13 /home
3 sudo mv opencv-2.4.13 opencv

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

cd ~/opencv
mkdir build
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

6.配置caffe

(1)使用Git直接下载Caffe非常简单,或者去https://github.com/BVLC/caffe下载。由于我习惯去github上找代码,所以就直接去下载的源码。

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

(2)因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子,因此,首先将Makefile.config.example的内容复制到Makefile.config: 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       

这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径.

(4)修改makefile文件
打开makefile文件,做如下修改:
将:

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

替换为:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

(5)编辑/usr/local/cuda/include/host_config.h
将其中的第115行注释掉:

#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

(6)编译
make all -j8 #-j根据自己电脑配置决定
编译过程中可能会出现如下错误:
错误内容1:
"fatal error: hdf5.h: 没有那个文件或目录"
解决办法:
step1:在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。
将:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
替换为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
stept2:在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
错误内容2:
"libcudnn.so.5 cannot open shared object file: No such file or directory"
解决办法是将一些文件复制到/usr/local/lib文件夹下:
#注意自己CUDA的版本号!

1 sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
2 sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
3 sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
4 sudo cp /usr/local/cuda-8.0/lib64/libcudnn.so.5 /usr/local/lib/libcudnn.so.5 && sudo ldconfig

(8)测试

sudo make runtest

如果运行之后出现下图,说明caffe配置成功。

到此caffe配置完毕!

MNIST数据集测试
配置caffe完成后,我们可以利用MNIST数据集对caffe进行测试,过程如下:
 
1.将终端定位到Caffe根目录
cd ~/caffe
 
2.下载MNIST数据库并解压缩
./data/mnist/get_mnist.sh
 
3.将其转换成Lmdb数据库格式
./examples/mnist/create_mnist.sh
 
4.训练网络
./examples/mnist/train_lenet.sh
训练的时候可以看到损失与精度数值,如下图:

可以看到最终训练精度是0.9914。

以上截图是别人执行成功的截图,我到这一步的时候报错了:

具体原因不明,求各位老鸟指导!!!

时间: 2024-10-10 14:55:42

Ubuntu16.04 安装配置Caffe的相关文章

Ubuntu16.04 安装配置 Caffe 过程 (GPU版+CUDA 9.0+cuDNN 9.0+OpenCV 3.4.1)

虽然 Caffe 的官网已经有比较详细的针对 Ubuntu 的安装教程,但是要配置可以使用 GPU 的 Caffe 需要的依赖太多,包括 CUDA,cuDNN,OpenCV 等.参考了网上的很多教程,但在自己的配置中依旧出现了各种各样的意想不到的坑,所以在此记录一下自己配置 Caffe 的过程,以供参考.因为是配置完成后以回忆的形式做的记录,所以可能会有细节上的遗漏,还请见谅. 安装 Nvidia 驱动 1. 查询 NVIDIA 显卡驱动 去官网查询自己的显卡对应的驱动 http://www.n

Ubuntu16.04安装配置和使用ctags

Ubuntu16.04安装配置和使用ctags by ChrisZZ ctags可以用于在vim中的函数定义跳转.在ubuntu16.04下默认提供的ctags是很老很旧的ctags,快要发霉的版本(5.9~svn20110310-11),快扔掉它,安装universal-ctags吧! 发霉的exuberant-ctags 来,一起看看,默认的ctags是什么情况. 查看apt提供了哪些ctags包 aptitude search ctags 查询结果: v ctags - v ctags:i

ubuntu16.04 安装配置matlab ,python ,cuda8.0,cudnn,opencv3.1的caffe环境

网络上有很多ubuntu上caffe配置环境的帖子,本人照着其中的许多进行了参考,都出现了或多或少的错误,很多地方也有差异. 于是自己整理了下自己的安装过程,成功进行了测试,跑通了faster-rcnn.配置环境时间为2017.1.4 系统ubuntu16.04 一:显卡驱动的安装: 由于要使用GPU,所以先要查看自己显卡所匹配的显卡驱动,网址:http://www.nvidia.com/Download/index.aspx%3Flang=en-us 选择电脑匹配的显卡驱动,本人电脑显卡为GT

ubuntu16.04安装配置php5.6,apache2,mysql

Ubuntu 16.04默认安装php7.0环境,但是php7目前兼容性并不是很好,如果自行安装php5需要清除php7的已安装包,否则会报错. 第一步:移除默认及已安装的PHP包 sudo dpkg -l | grep php| awk '{print $2}' |tr "\n" " "sudo apt-get install aptitudesudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr

ubuntu16.04安装配置nagios

参考博文:https://www.howtoing.com/ubuntu-nagios/ 该博文真实有效可供参考,按照步骤,基本可以成功 一.安装的先决条件 sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd libgd-dev sendmail unzip 二.用户和组配置 useradd nagiosgroupadd nagcmdusermod -a -G nagcmd nagiosu

Ubuntu16.04 安装配置SNMP

1. 安装snmp 服务端:snmpd客户端:snmp apt-get install -y snmpd snmp 2. 配置snmp 找到并打开snmpd的配置文件 cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak vim /etc/snmp/snmpd.conf 将下面两行注释掉 view systemonly included .1.3.6.1.2.1.1 view systemonly included .1.3.6.1.2.1.25.1

Ubuntu16.04安装后开发环境配置和常用软件安装

Ubuntu16.04安装后1.安装常用软件搜狗输入法+编辑器Atom+浏览器Chome+视频播放器vlc+图像编辑器GIMP Image Editor安装+视频录制软件RcordMyDesktop安装.2.开发环境配置.JDK环境配置+Scala环境配置+nodejs环境配置+开发工具intellij IDEA安装+Python数据分析环境配置+Jupyter开发工具安装+Python多版同时支持. 1.Ubuntu16.04安装常用软件(搜狗输入法+编辑器Atom+浏览器Chome+视频播放

ubuntu16.04 安装mysql5.7 ,配置远程访问

ubuntu16.04 安装 mysql5.7 ,配置远程访问 安装mysql 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client 3. sudo apt-get install libmysqlclient-dev 查看是否安装成功 修改mysql配置文件 gedit /etc/mysql/mysql.conf.d/mysqld.cnf 把其中bind-address = 127.0.0.1注释掉 登陆mys

Ubuntu16.04安装tensorflow+安装opencv+安装openslide+安装搜狗输入法

Ubuntu16.04在cuda以及cudnn安装好之后,安装tensorflow,tensorflow以及opencv可以到网上下载对应的安装包并且直接在安装包所在的路径下直接通过pip与conda进行安装,如下图所示: 前提是要下载好安装包.安装好tensorflow之后还需要进行在~/.bashrc文件中添加系统路径,如下图所示 Openslide是医学图像一个重要的库,这里给出三条命令进行安装 sudo apt-get install openslide-tools sudo apt-g