Caffe(含GPU)安装与测试

最近还是会有很多学习爱好者问我安装caffe的一些问题,虽然现在TF很是受大家的喜欢,但是还是会有很多学习者用着caffe。为了让更多的人少走弯路,网上也有很多教程,我自己来写一下我以前安转的过程与遇到的问题,可以给那些初学者一些建议,希望采纳,如有不对之处,望指正,谢谢!

第一部分:Ubuntu14.04桌面版下载及安装(我是通过U盘安装的,我用工具是UltraISO--特别好用,网上有很多教程,这个不用太过于详细书写)

第二部分:nvidia-cuda-toolkit下载及安装

CUDA 8.0 Downloads

下载好安装包后,拷贝到你新建的文件下,如:/home/您的服务器名字/新建文件夹,这个目录,并用在终端操作:ctrl+alt+t,在此目录输入代码:

sudo dpkg -icuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb-----------------等待其完成;
sudo apt-get update-----------------等待其完成;
sudo apt-get install cuda-----------------等待其完成。

过一会就大功告成了,Cuda7.5安装成功。

第三部分:安装mkl(我也是从别人百度云下载的,您应该也能下载到该文件,嘿嘿!就是下载有点慢。)

1-先安装mkl:

下载好后拷贝到/home/您的服务器名字/新建文件,这个目录,然后直接提取到此处并用终端ctrl+alt+t在此目录输入代码:

chmod a+x parallel_studio_xe_2016 -R----------------等待完成;
cd parallel_studio_xe_2016;
sudo sh install_GUI.sh(安装GUI)。

后面这里有一些繁琐:

在安装界面,依次点击next-->next-->next-->i accept-->next-输入激活码

激活码获取步骤:

进入网址https://registrationcenter.intel.com/en/forms/?licensetype=2&productid=2486

全选后 accept,输入邮箱,此邮箱必须是教育机构的邮箱(也就是您们学习官方邮箱)

输入后全选accept,之后会出现一个下载页面,点击download,中间会有序列号,你把这个记住就好了。-->next-->no I don'twant...-->next-->next-->install-->next-->finish。

安装完成。

2-配置环境:

终端输入:

sudo gedit /etc/ld.so.conf.d/intel_mkl.conf,输入:
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64

保存退出,再终端输入:

sudo gedit /etc/ld.so.conf.d/cuda.conf,输入:
/usr/local/cuda/lib64
/lib

保存退出,最后输入:

sudo ldconfig -v

完成。

第四部分:安装opencv3.0.0

参考:ubuntu14.04+opencv 3.0安装及测试

Installation in Linux

4.1- 安装opencv所需的库

GCC 4.4.x or later
CMake 2.6 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

4.2- 官网下载最新的opencv源码

4.3- 编译opencv

a.将opencv-3.0.0.zip放在任意目录下,解压 unzip opencv-3.0.0.zip

b.创建编译目录,编译

cd ~/opencv-3.0.0
mkdir release
cd release

%%首次运行下一步的时候出现了问题:提示下载ippicv_linux_20141027.tgz,然后下载不出

%%来,参考:Ubuntu14.04 下 OpenCV3 安装 ,独立下载了该文件,然后替换

%%了原来的文件(原来只有14m,下载的有28m)

%%下载地址 Browse /3rdparty/ippicv at SourceForge.net

%%替换文件路径 ~/opencv-3.0.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b

%用opencv-3.1.0的时候,可以不用下载ippicv_linux_20141027.tgz该文件去替换。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

%输入后等待下载: Downloading ippicv_linux_20151201.tgz...

make –j4

%% j后面的数字最好是选择计算机的核心数目

sudo make install

4.4- 测试opencv【不必要】

4.4.1- 创建工作目录

mkdir ~/opencv-lena
cd ~/opencv-lena
gedit DisplayImage.cpp

4.4.2- 编辑如下代码

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
  if ( argc != 2 )
  {
    printf("usage: DisplayImage.out <Image_Path>\n");
    return -1;
  }
  Mat image;
  image = imread( argv[1], 1 );
  if ( !image.data )
  {
    printf("No image data \n");
    return -1;
  }
  nameWindow("Display Image", WINDOW_AUTOSIZE );
  imshow("Display Image", image);
  waitKey(0);
  return 0;
}

3.4.3 创建CMake编译文件gedit Cmakelist.txt

写入如下内容:

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

4.4.4- 编译

cd ~/opencv-lena
cmake .(注意后面的 “.” )
make

4.4.5- 执行

此时opencv-lena文件夹中已经产生了可执行文件DisplayImage,下载lena.jpg放在opencv-lena下,运行: ./DisplayImage lena.jpg

第五部分:安装依赖项

5.1-安装google-glog

下载地址:lee的caffe配置下载glog-0.3.3.tar.gz - 下载频道 - CSDN.NET

安装步骤:将glog‐0.3.3.tar.gz这个文件拷贝到主文件夹下,即/home/您的服务器名字文件夹下,提取到此处,解压后终端输入:

cd /home/您的服务器名字/glog-0.3.3
./configure
make
sudo make install

安装成功。

5.2-安装其他依赖项:

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

5.3-安装Python所需依赖项:

sudo apt-get install -y 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

第六部分:配置cudnn文件(必用cudnn-7.0-linux-x64-v3.0-prod.tgz这个文件)

6.1 下载最新的cudnn库

官网注册一个developer的账号,等一两天审核,然后才能下载

6.2 解压cudnn-7.0-linux-x64-v3.0-rc.tgz

tar cudnn-7.0-linux-x64-v3.0-rc.tgz

6.3 添加到cudn库中

cd cuda
sudo cp ./lib64/libcudnn.so.7.0.58 /usr/local/cuda/lib64/
sudo cp ./include/cudnn.h /usr/local/cuda/include/
sudo ln -s libcudnn.so.7.0.58 libcudnn.so.7.0
sudo ln -s libcudnn.so.7.0 libcudnn.so
sudo ldconfig /usr/local/cuda/lib64

第七部分:配置caffe-master

将caffe-master.zip这个文件拷贝到主文件夹下,即/home/您的服务器名字文件夹下,提取到此处,解压后终端输入:

cd /home/您的服务器名字/caffe-master
cp ./Makefile.config.example ./Makefile.config

打开刚刚新建的Makefile.config文件,做如下修改:

7.1. 启用CUDNN,去掉"#"

USE_CUDNN := 1

7.2. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)

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

7.3. 启用Intel Parallel Studio XE 2016

BLAS := mkl

7.4. 配置路径,实现caffe对Python和Matlab接口的支持

PYTHON_LIB := /usr/local/lib

7.5. 启用OpenCV 3.0,去掉"#"

OPENCV_VERSION =3

到此修改结束,保存退出。

然后编译caffe-master,终端输入:

cd /home/您的服务器名字/caffe-master
make all -j16("‐j16"是使用CPU的多核进行编译,可以极大地加速编译的速度)
make test -j16
make runtest -j16

等待编译完成,完成后终端输入:

make pycaffe -j16(编译Python用到的caffe文件)

等待编译完成

到此caffe-master成功。

八 测试caffe (Le-Net 5)

%获取数据

cd data/mnist
sudo sh ./get_mnist.sh 

%这样是需要下载的,也可以把mnist的数据,下载好然后放在目录下

%重建数据文件,将mnist重建为能被caffe使用的数据格式

cd ~/caffe-master

%注意要先回到根目录再进行下面的操作

sudo sh ./examples/mnist/create_mnist.sh 

%训练Le-net 5

%注意如果是使用CPU模式的话,需要修改目录下的lenet_solver.prototxt文件,将

%solver_mode:GPU改为solver_mode:CPU

%在ubuntu 14.04直接双击更改即可,或者在终端用gedit或者vim改

%另外可以把迭代次数改小一点,比如5000

sudo sh ./examples/mnist/train_lenet.sh

最终训练完的模型会存储为一个lenet_iter_10000的文件,同时在训练时会显示训练的过程,每1000次训练会测试一次模型,accuracy为此时模型的准确率,loss为测试的代价函数。

再次感谢福跃的帮助与支持。

原文发布于微信公众号 - 计算机视觉战队(ComputerVisionGzq)

原文发表时间:2017-11-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏difcareer的技术笔记

最新版MacOS(10.13.2)编译Android 4.4.4源码

网上搜一下Mac编译Android源码,能搜到很多,但最新版的MacOS(10.13.2)编译Android4.4.4的却没有,本文记录我的编译过程。

17140
来自专栏腾讯移动品质中心TMQ的专栏

像 google 一样测试系列之六: 实战篇

本文主要介绍 google 一样测试系列的实战内容,Mock 和反射执行,会穿插在各章节中,因此不单独成节了。

17210
来自专栏Java后端技术栈

QQ登录网站接入功能实现--非官方文档搬运

最近第一次使用QQ登录功能,期间遇到这种问题,在网上找了很多资料,大多都是官方的搬运,并没有真正的干料,可能是个人能力问题,遇到了各种麻烦,折腾了几天,最终弄好...

17140
来自专栏腾讯Bugly的专栏

H5 缓存机制浅析 移动端 Web 加载性能优化

1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5 引入的离...

39920
来自专栏雪胖纸的玩蛇日常

python3+django2 开发易语言网络验证(上)

39040
来自专栏黑白安全

网站漏洞扫描工具 WAScan-Web Application Scanner

WAScan是一款开源工具,该工具采用的是基于黑盒的漏洞挖掘方法,这也就意味着研究人员无需对Web应用程序的源代码进行研究,它可以直接被当作成一种模糊测试工具来...

1.1K30
来自专栏Java架构沉思录

Linux常用Shell脚本知多少

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

16210
来自专栏信安之路

审计 tinyshop 中风险

审计该 CMS 中的内容只涉及到前台,后台中有存安全问题但对我来说没什么意义,所以没有过多的关注,感兴趣的朋友可以自己动动手。

6400
来自专栏openshift持续集成

jenkins邮件插件中的内容参数设置

众所周知,Jenkins默认提供了一个邮件通知,能在构建失败、构建不稳定等状态后发送邮件。但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容、无法定...

98980
来自专栏Crossin的编程教室

喏,你们要的 PyCharm 快速上手指南

0、前言 Pycharm 作为一款针对 Python 的编辑器,配置简单、功能强大、使用起来省时省心,对初学者友好,这也是为什么编程教室一直推荐新手使用 Pyc...

32440

扫码关注云+社区

领取腾讯云代金券