在ubuntu14.04上配置cuda_caffe_cudnn_anaconda_digits
参考网上的很多网站,以这篇为主:http://blog.csdn.net/yhl_leo/article/details/50961542
这篇算是自己对caffe学习的一个总结系列的开头。首先因为caffe的依赖项比较多,配置起来也比较麻烦。这篇算是比较详尽地把caffe的各种相关配置说清楚。转载请注明出处。
推荐ubuntu14.04版本,因为digits的支持比较好。显卡支不支持GPU加速要搞清楚啊,不支持就全用CPU算吧,别浪费时间折腾cuda了。
大家基本要按照官方教程上面来。但是官方教程有的坑没有点出来的,本文也一并列上了。
一、显卡的安装
禁用nouveau驱动,nouveau是ubuntu自带的对nivida的开源驱动,对安装nvidia的官方驱动会有问题,所以先将其禁用。
按Ctrl+Alt+F1 进入tty1控制台,输入
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在里面写上
blacklist nouveau
options nouveau modeset=0
按esc 输入:wq 保存退出
ps:vim编辑器很好用啊,还不会的小伙伴要抓紧时间学啊。
执行
lspci | grep nouveau
查询pci总线中是否还有nouveau,grep后面接正则表达式过滤。
什么都没有说明禁用成功。
重启后登录时,可能会循环出现填写登录密码,不能进入系统的情况,按Ctrl+Alt+F1,登录,
卸载显卡方法:
sudo apt-get remove --purge nvidia*
安装显卡驱动:
$ sudo add-apt-repository ppa:xorg-edgers/ppa
$ sudo apt-get update
$ sudo apt-get install nvidia-352
执行sudo start lightdm 输入密码能看到桌面就ok啦
ps:显卡驱动挂掉之后很可能你就看不到系统界面了,启动之后显示器一团漆黑,其实系统是在运行的。我的做法是先提前装好了SSH服务,碰到这种情况就通过另一台电脑SSH登陆进去安装驱动。
二、CUDA安装
CUDA官网下载。其实应该先下载好的,如果没来得及用图形界面下载,用wget, curl什么的下载也一样。 据说331的驱动有坑啊,大家不要用那个驱动。下面安装一些依赖项/
sudo service lightdm stop
sudo apt-get install g++
sudo apt-get install git
sudo apt-get install freeglut3-dev
首先在官网上下载安装文件(链接前文已经提供):
我下载的是deb本地安装文件,下载完成后,按照文档提示的命令安装:
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
下载了下方的Installation Guide for Linux,里面有关于环境变量的设置方法:
如果有,则说明安装成功。没有可以按照下面方法卸载:
sudo /usr/local/cuda-7.5/bin/uninstall_cuda_7.5.plsudo /usr/bin/nvidia-uninstall
最后,配置环境变量,我们直接放在系统配置文件profile里面,先打开profile文件
sudo vi /etc/profile
在最后面加入两行代码:
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
执行 source /etc/profile 使环境变量生效
至此cuda安装完毕
三、CUDNN安装
CUDNN是给CUDA加速的。cuDNN是GPU加速计算深层神经网络的库。cudnn官网下载。貌似下载要先注册,审核通过还要几天时间。下载好之后解压。
执行如下命令:
sudo tar xvf cudnn-7.0-linux-x64-v4.0-prod.tgz && cd cuda/include && sudo cp *.h /usr/local/include/ && cd ../lib64 && sudo cp lib* /usr/local/lib/ && cd /usr/local/lib && sudo chmod +r libcudnn.so.4.0.7 && sudo ln -sf libcudnn.so.4.0.7 libcudnn.so.4 && sudo ln -sf libcudnn.so.4 libcudnn.so && sudo ldconfig
这样CUDNN就安装完毕了,是不是很简单啊。
四、Anaconda的安装
到https://www.continuum.io/downloads 下载anaconda,推荐使用linux版的python 2.7版本,因为tensorflow中的有些东西不支持python3.5(如cPickle)。
下载成功后,在终端执行(2.7版本):
# bash Anaconda2-4.1.1-Linux-x86_64.sh
或者3.5 版本:
# bash Anaconda3-4.1.1-Linux-x86_64.sh
在安装的过程中,会问你安装路径,直接回车默认就可以了。有个地方问你是否将anaconda安装路径加入到环境变量(.bashrc)中,这个一定要输入yes
安装成功后,会有当前用户根目录下生成一个anaconda2的文件夹,里面就是安装好的内容。在终端可以输入
conda info 来查询安装信息
输入conda list 可以查询你现在安装了哪些库,常用的python, numpy, scipy名列其中。如果你还有什么包没有安装上,可以运行
conda install *** 来进行安装(***代表包名称),如果某个包版本不是最新的,运行 conda update *** 就可以了。
五、caffe的安装
首先先安装opencv,推荐2.4的版本。opencv1.x是纯C语言编写的,2.x c和c++的包都有,opencv3是只用c++写的。为了别人写的代码也能正常运行,还是推荐装2.x。
opencv2.4安装很简单了,下载下来解压,然后进入目录make, sudo make install就搞定了。
caffe官方下载 基本按照官方安装指南就可以了,l另外一个方法就是命令行下载
下载caffe:
sudo git clone https://github.com/BVLC/caffe.git
如果你没安装Git,请阅读博客:Ubuntu Git安装与使用。
然后编译caffe:先安装依赖:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
贾扬清大神还说了,大家一定要看清楚啊!
下面开始配置caffe并且开始编译了。
sudo cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired) make all make test make runtest
配置文件有几点要注意:
# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1
# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1BLAS choice:# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlasBLAS := atlas
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
# BLAS_INCLUDE := /path/to/your/blas
# BLAS_LIB := /path/to/your/blas
这几个地方根据自己情况选择。
make all没有问题的话,caffe就算成功了啊。
保存后重新编译: (如果电脑有8个线程的话,就在后面加 -j8 ,可以加快编译速度)
sudo make clean
sudo make all -j8
sudo make test -j8
sudo make runtest -j8
本人编译的时候最后一步的时候,出现这样的错误:
libcudart.so.7.5 cannot open shared object file: No such file or directory
网上有一堆介绍,怎么设置环境变量的(我们分明已经设置过了),可以这样检查是否已经添加环境变量:
$ echo $PATH$ echo $LD_LIBRARY_PATH
可以看到,环境变量已经添加好。
解决方法是这样,将一些文件复制到/usr/local/lib文件夹下:
sudo cp /usr/local/cuda-7.5/lib64/libcudart.so.7.5 /usr/local/lib/libcudart.so.7.5 && sudo ldconfig
sudo cp /usr/local/cuda-7.5/lib64/libcublas.so.7.5 /usr/local/lib/libcublas.so.7.5 && sudo ldconfig
sudo cp /usr/local/cuda-7.5/lib64/libcurand.so.7.5 /usr/local/lib/libcurand.so.7.5 && sudo ldconfig
再次,尝试sudo make runtest命令,出现如下:
至此,caffe安装完成。
将caffe路径导入环境变量,执行命令如下:
sudo vi ~/.bashrc
在最后加上 export PYTHONPATH=/home/***/caffe/python:$PYTHONPATH
export CAFFE_HOME=/home/***/caffe:$CAFFE_HOME
之后执行 sudo ldconfig 来生效
接着在caffe里面执行sudo make pycaffe ,没有错误就OK了,测试caffe是否成功,
在终端输入 python 回车,import caffe 没有错误表示ok,
如果出现No module named google.protobuf.internal
解决办法参考链接:http://www.th7.cn/system/lin/201605/164288.shtml
sudo chmod 777 -R anaconda2(文件夹) 改变权限 然后
conda install protobuf
就搞定啦~
六、DIGITS安装
参考链接:http://www.cnblogs.com/denny402/p/5136155.html
一、安装digits 3.0
digits是运行在cuda和caffe基础上的,所以要先配置好cuda+caffe那是毫无疑问的了。还不会配置的,请参考:Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
打开一个终端,依次运行下列命令:
cd
sudo -s
进入当前用户根目录,并切换到超级用户(符号由$变成#,不用每句都输sudo)
CUDA_REPO_PKG=cuda-repo-ubuntu1404_7.5-18_amd64.deb &&
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/$CUDA_REPO_PKG &&
sudo dpkg -i $CUDA_REPO_PKG
接着
ML_REPO_PKG=nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb &&
http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/$ML_REPO_PKG &&
sudo dpkg -i $ML_REPO_PKG
apt-get update
apt-get install digits
在ubuntu14.04上配置cuda_caffe_cudnn_anaconda_digits的更多相关文章
- 在Ubuntu14.04上配置jdk环境
服务器环境:Ubuntu14.04 server 1.进入oracle官网下载jdk1.7.0_71_x64.gz 重命名为jdk1.7 2.使用tar -xvf jdk1.7.0_71_x64. ...
- Ubuntu14.04安装配置ndnSIM
Ubuntu14.04安装配置ndnSIM 预环境 Ubuntu14.04官方系统 请先使用sudo apt-get update更新一下源列表 安装步骤 安装boost-lib sudo apt-g ...
- 【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程
原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一 ...
- 菜鸟玩云计算之十六:Ubuntu14.04上创建的虚拟机迁移到RHEL6.4
菜鸟玩云计算之十六:Ubuntu14.04上创建的RHEL6.4虚拟机迁移到RHEL6.4主机上 RHEL6.4 Server作为虚拟机的HOST,执行以下的命令检查配置和安装相关软件: # egre ...
- ubuntu14.04上实现faster rcnn_TF的demo程序及训练过程
安装环境:Ubuntu14.04.显卡Tesla K40C+GeForce GT 705.tensorflow1.0.0.pycharm5.0 说明:原文见博客园,有问题原文下留言,不定期回复.本文作 ...
- 在ubuntu14.04上搭建OpenVPN服务
简介 在连接了不可信的网络环境后,让手机或者计算机安全的访问互联网,使用虚拟专用网络(Virtual Private Network,VPN)是一个解决办法.OpenVPN是一个SSL VPN完整解决 ...
- Ubuntu14.04上深度学习Caffe库安装指南(CUDA7.5 + opencv3.1)
Ubuntu14.04上Caffe安装指南 安装的准备工作 首先,安装官方版Caffe时.假设要使用Cuda.须要确认自己确实有NVIDIA GPU. 安装Ubuntu时,将/boot 分区分大概20 ...
- Ubuntu14.04.6配置阿里源
Ubuntu14.04.6配置阿里源 这两天上手 Ubuntu 系统,因为公司用的是 14.04.6 版本,所以有了一些踩坑记录. 起因是安装完系统我需要安装一个搜狗输入法,过程得安装 fcitx,需 ...
- [译]How to Install Node.js on Ubuntu 14.04 如何在ubuntu14.04上安装node.js
原文链接为 http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/ 由作者Jacob Nicholson 发表于October ...
随机推荐
- SQL Server中的连接查询【内连接,左连接,右连接,。。。】
在查询多个表时,我们经常会用“连接查询”.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据 ...
- JavaScript基础概念
1.JavaScript在浏览器中是解释执行的: 2.JavaScript是一中弱类型的语言,在使用变量前,可以不用先申明: 3.JavaScript使用了对象对象程序设计思想: 4.JavaScri ...
- 字符串 --- KMP Eentend-Kmp 自动机 trie图 trie树 后缀树 后缀数组
涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机 KMP算法 Extend-KMP 后缀树 后缀数组 trie树 trie图及其应用.当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟 ...
- 重构第23天 引用参数对象(Introduce Parameter Object)
理解:有时候我们的一个方法,需要很多个参数,太多参数,不易阅读和理解,我们就可以把多个参数封装成一个对象. 详解: 重构前代码: public class Registration { public ...
- 整合spring,springmvc和mybatis
我创建的是maven项目,使用到的依赖架包有下面这些: <dependencies> <dependency> <groupId>org.springframewo ...
- Codeforces Round #346 (Div. 2)---E. New Reform--- 并查集(或连通图)
Codeforces Round #346 (Div. 2)---E. New Reform E. New Reform time limit per test 1 second memory lim ...
- 两种设计模式(1)==>>“简单工厂”
我们以做一个计算器为例,给大家介绍简单工厂的应用: 效果: 这里我们使用 继承 ,虚方法, 简单工厂的设计模式来完成 首先,我们除了搭好窗体外,我们应该把我们的一些类准备好: 1.计算的父类Calcu ...
- Android 手机卫士13--进程设置
1.显示隐藏系统进程 修改ProcessManagerActivity的Adapter ..... @Override public int getCount() { if(SpUtil.getBoo ...
- C++ 面向对象的三个特点--继承与封装(一)
面试的时候经常会有很多概念性的东西,许久不用都会很生疏,特意整理一下方便自己以后不记得了可以查看一下,也顺便帮助自己复习一下. 概念 继承是面向对象程序设计的一个重要特性,它允许在既有类的基础上创建新 ...
- 微信公共平台开发5 .net
每次在于微信交互时,都要用到access_token,但是这个值限制的是有时间的,但是access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token ...