Linux下的GPU版Caffe安装方法

系统环境:Ubuntu 14.04LTS + NV TitanX

1.1 (可选)显卡驱动的安装(有风险)

如果需要重装,需要先卸载已有版本

sudo apt-get remove - -purge nvidia-*
sudo apt-get remove - -purge cuda-*

再重装一个比较稳定的版本

sudo apt-get install -y nvidia-352    // nvidia-361也比较稳定

或者安装其它最新版本的驱动,但一定注意,通过apt-get或者yum安装,不要用官方的.run文件安装驱动,否则死机必须重装系统解决

1.2 安装cuda

需要注意的是,cuda安装过程会自己安装显卡驱动,所以第一步也可以不做。使用以下命令检查在安装cuda前后验证是否有显卡驱动附带安装了。

dpkg –l | grep nvidia
When installing CUDA on Ubuntu, you can choose between the Runfile Installer and the Debian Installer. The Runfile Installer is only available as a Local Installer. The Debian Installer is available as both a Local Installer and a Network Installer. The Network Installer allows you to download only the files you need. The Local Installer is a standalone installer with a large initial download. In the case of the Debian installers, the instructions for the Local and Network variants are the same. For more details, refer to the Linux Installation Guide.

以上是官方的指引,即我们可以使用本地安装(需要下载1G多的安装包),也可以只下载一个种子文件,安装过程需要其它配套程序会自动下载。安装命令如下:

sudo dpkg --install cuda-repo-<distro>-<version>.<architecture>.deb
sudo apt-get update
sudo apt-get install cuda
reboot

增加环境变量

vim ~/.bashrc
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
source ~/.bashrc

安装测试样例

cuda-install-samples-7.5.sh ~
cd ~/NVIDIA_CUDA-Samples_7.5/5_Simulations/nbody
make
./nbody

检查是否安装完毕

Dpkg –l |grep cuda
Dpkg –l |grep nvidia
Cd /usr/local/cuda/samples/1_Utilities/deviceQuery
./deviceQuery

cuda安装参考

1.3 安装cudnn

Step 0: Install cuda from the standard repositories.

Step 1: Register an nvidia developer account and download cudnn here (about 80 MB)

Step 2: Check where your cuda installation is. For the installation from the repository it is /usr/lib/... and /usr/include. Otherwise, it will be /urs/local/cuda/.

You can check it with:

which nvcc

or

ldconfig -p | grep cuda

Step 3: Copy the files:

cd folder/extracted/contents
sudo cp -P include/cudnn.h /usr/include
sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/
sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn*

cudnn安装参考

1.4 安装anaconda-python

Download the software in following address

sudo chmod 777 Anaconda2-4.1.1-Linux-x86_64.sh
./Anaconda2-4.1.1-Linux-x86_64.sh

然后按照提示安装即可,安装路径选择默认的路径即可,安装结束后会自动添加环境变量,退出终端之后再进入后生效。

note: anadconda的包管理机制虽然很方便,但有时会和系统版本产生各种不兼容反应

如果想使用系统自带python的话,最好使用python本地虚拟环境,这样更加便于管理。安装Python本地虚拟环境参考

2.1 编译Caffe源码

git clone https://github.com/BVLC/caffe && cd caffe
cp Makefile.config.example Makefile.config
vim Makefile.config

uncomment

USED_CUDNN = 1
USE_CUDNN := 1
OPENCV_VERSION := 3
# Modify PYTHONPATH of include and lib
ANACONDA_HOME := $(HOME)/pyenv/pycaffe
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
USE_PKG_CONFIG := 1
WITH_PYTHON_LAYER := 1

编译

make all -j16
make pycaffe

这两步不出问题一步就OK了,但是为了让python能够找到编译好的caffe位置,需要:

cd ~/caffe/python
# 这里面是了些python常用包,需要装不上的直接删去
pip install –r requirements.txt
pwd > ~/pyenv/pycaffe/lib/python2.7/site-packages/caffe.pth
# 设置python中caffe路径,其中~/pyenv/pycaffe是我用的python的位置

在任意路径下,用caffe.pth中的python,import caffe不错误即成功了。

2.2 常见编译或使用中遇到的问题

(1) error: while loading shared libraries: libcudart.so.7.5: cannot open shared object file: No such file or directory

解决:

sudo ldconfig  /usr/local/cuda/lib64
step 4:sudo make pycaffe –j16

(2) error: Python.h no such file or directory

解决:

ANACONDA_HOME := /home/wangyuanjiang/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \

solution2 Reference

(3) error: import caffe 后提示Error: No module named google.protobuf.internal

solution: pip install protobuf

solution3 referrence

(4) error: caffe with anaconda2python RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9

solution 4:

download numpy-1.11.tar.gz

pip install numpy-1.11.tar.gz

(5) error: ImportError: No module named skimage.io

Solution 5:

sudo apt-get install python-skimage

reference5

(6) error6: python import caffe only in root+caffe/python directory

export PYTHONPATH=/usr/local/src/caffe/python:$PYTHONPATH

(7) error: python –version differs with sudo python –version

It’s a painful trouble!

You an add solute path of python when you want to use sudo python

You can change the permission of you directory by type

Chmod –R 777 destdir

(8) error: cublas_v2.h: No such file or directory:

./include/caffe/util/device_alternate.hpp:34:23: fatal error: cublas_v2.h: No such file or directory

Solution:

本来以为是自己的openblas没有安装好,后来发现是因为在Makefile.config文件中写错了cuda的路径。本来把cuda的路径uncomment成为/usr/local/cuda就行了,但是我却把它uncomment成为/usr了。

(9) error: when make runtest –j16, there is no share lib libhdf5_h1.so.10 and libhd5.so.10

Solution:

cd /usr/lib/x86_64-linux-gnu/
sudo cp libhdf5_hl.so.7 libhdf5_hl.so.10
sudo cp libhdf5.so.7 libhdf5.so.10

(10) error: 发现训练一次mnist非常慢,花了大概30min但是make runtest 没有运行完,把它运行完发现训练变快了。还没解决。

(11) error: caffe/proto/caffe.pb.h: No such file or directory

解决:

cp –rf build/src/caffe/proto include/caffe/

参考

official

recommend

关于pycaffe、matcaffe的使用

博客1

博客2

[Caffe]史上最全的caffe安装过程的更多相关文章

  1. 史上最全CentOS6离线安装部署Cloudera Manager5.9.3

    史上最全CentOS6离线安装部署Cloudera Manager5.9.3

  2. Istio技术与实践06:史上最全!Istio安装参数介绍

    一. CertManage Istio-1.0版本新加入的组件,利用ACME为Istio签发证书 Key Default Value Description certmanager.enabled T ...

  3. 史上最全Windows版本搭建安装React Native环境配置

    史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...

  4. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

  5. 史上最全的maven pom.xml文件教程详解

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  6. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

  7. .Net魔法堂:史上最全的ActiveX开发教程——自动更新、卸载篇

    一.前言 B/S模式的特点之一,客户端版本升级相对简单.快捷,适合产品的快速迭代.而ActiveX组件的自动更新同样也继承了这一优点.下面我们一起来了解吧! 二.二话不说更新ActiveX 1. 设置 ...

  8. .Net魔法堂:史上最全的ActiveX开发教程——部署篇

    一.前言 接<.Net魔法堂:史上最全的ActiveX开发教程——发布篇>,后我们继续来部署吧! 二. 挽起衣袖来部署   ActiveX的部署其实就是客户端安装ActiveX组件,对未签 ...

  9. .Net魔法堂:史上最全的ActiveX开发教程——发布篇

    一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程——开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包  C#开发的Activ ...

随机推荐

  1. 用caffe一步一步实现人脸检测

    学习深度学习已有一段时间了,总想着拿它做点什么,今天终于完成了一个基于caffe的人脸检测,这篇博文将告诉你怎样通过caffe一步步实现人脸检测.本文主要参考唐宇迪老师的教程,在这里感谢老师的辛勤付出 ...

  2. Codeforces_499C:Crazy Town(计算几何)

    题目链接 给出点A(x1,y1),B(x2,y2),和n条直线(ai,bi,ci,aix + biy + ci = 0),求A到B穿过多少条直线 枚举每条直线判断A.B是否在该直线两侧即可 #incl ...

  3. 51nod_1298:圆与三角形(计算几何)

    题目链接 判断圆和三角形是否相交   可以转化为   判断三条线段是否和圆相交 #include<iostream> #include<cstdio> #include< ...

  4. 基于Entity Framework的自定义分页,增删改的通用实现

    简介 之前写个一个基于Dapper的分页实现,现在再来写一个基于Entity Framework的分页实现,以及增删改的通用实现. 代码 还是先上代码:https://github.com/jinwe ...

  5. RxSwift 系列(九) -- 那些难以理解的概念

    前言 看完本系列前面几篇之后,估计大家也还是有点懵逼,本系列前八篇也都是参考RxSwift官方文档和一些概念做的解读.上几篇文章概念性的东西有点多,一时也是很难全部记住,大家脑子里面知道有这么个概念就 ...

  6. java+selenium3.0 运行时出的问题(system property)!

    按照之前的文章讲解,都已经搭建好了,可是在刚开始运行就报错了,代码和报错如下: WebDriver driver = new ChromeDriver(); driver.get("http ...

  7. HTML中关于图像和表格,链接等的知识

    下面是我分享的html中关于图像和表格,链接等知识: ①<img/>图像标签 <img/>标签中的一些常见属性:1,src是图像的路径属性,是img标签中必不可少的属性. 2, ...

  8. sping 框架学习之——初始篇

    sping框架学习: 1,什么是spring框架 spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以 ...

  9. Java大数据人才应用领域广,就业薪酬高

    互联网创造了大数据应用的规模化环境,大数据应用成功的案例大都是在互联网上发生的, 互联网业务提供了数据,互联网企业开发了处理软件,互联网企业的创新带来了大数据应用 的活跃,没有互联网便没有今天的大数据 ...

  10. 使用CHCA搭建静态博客

    [toc] chca是一个使用golang开发的静态博客生成器,简单.方便.快捷,抛弃每次都需要使用命令编译文件,采用文件监听方式编译,作者只需把markdown文件放到配置中的markdown文件夹 ...