前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Caffe(含GPU)安装与测试

Caffe(含GPU)安装与测试

作者头像
计算机视觉研究院
发布2018-04-17 14:37:14
1.2K0
发布2018-04-17 14:37:14
举报
文章被收录于专栏:计算机视觉战队

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

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

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

CUDA 8.0 Downloads

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

代码语言:javascript
复制
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在此目录输入代码:

代码语言:javascript
复制
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-配置环境:

终端输入:

代码语言:javascript
复制
sudo gedit /etc/ld.so.conf.d/intel_mkl.conf,输入:
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64

保存退出,再终端输入:

代码语言:javascript
复制
sudo gedit /etc/ld.so.conf.d/cuda.conf,输入:
/usr/local/cuda/lib64
/lib

保存退出,最后输入:

代码语言:javascript
复制
sudo ldconfig -v

完成。

第四部分:安装opencv3.0.0

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

Installation in Linux

4.1- 安装opencv所需的库

代码语言:javascript
复制
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.创建编译目录,编译

代码语言:javascript
复制
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该文件去替换。

代码语言:javascript
复制
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

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

代码语言:javascript
复制
make –j4

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

代码语言:javascript
复制
sudo make install

4.4- 测试opencv【不必要】

4.4.1- 创建工作目录

代码语言:javascript
复制
mkdir ~/opencv-lena
cd ~/opencv-lena
gedit DisplayImage.cpp

4.4.2- 编辑如下代码

代码语言:javascript
复制
#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

写入如下内容:

代码语言:javascript
复制
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- 编译

代码语言:javascript
复制
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/您的服务器名字文件夹下,提取到此处,解压后终端输入:

代码语言:javascript
复制
cd /home/您的服务器名字/glog-0.3.3
./configure
make
sudo make install

安装成功。

5.2-安装其他依赖项:

代码语言:javascript
复制
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所需依赖项:

代码语言:javascript
复制
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

代码语言:javascript
复制
tar cudnn-7.0-linux-x64-v3.0-rc.tgz

6.3 添加到cudn库中

代码语言:javascript
复制
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/您的服务器名字文件夹下,提取到此处,解压后终端输入:

代码语言:javascript
复制
cd /home/您的服务器名字/caffe-master
cp ./Makefile.config.example ./Makefile.config

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

7.1. 启用CUDNN,去掉"#"

代码语言:javascript
复制
USE_CUDNN := 1

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

代码语言:javascript
复制
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

代码语言:javascript
复制
BLAS := mkl

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

代码语言:javascript
复制
PYTHON_LIB := /usr/local/lib

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

代码语言:javascript
复制
OPENCV_VERSION =3

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

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

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

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

代码语言:javascript
复制
make pycaffe -j16(编译Python用到的caffe文件)

等待编译完成

到此caffe-master成功。

八 测试caffe (Le-Net 5)

%获取数据

代码语言:javascript
复制
cd data/mnist
代码语言:javascript
复制
sudo sh ./get_mnist.sh 

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

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

代码语言:javascript
复制
cd ~/caffe-master

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

代码语言:javascript
复制
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

代码语言:javascript
复制
sudo sh ./examples/mnist/train_lenet.sh

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机视觉战队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档