在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 ...
随机推荐
- 重构第22天 分解方法(Break Method)
理解:如果一个功能,里面比较复杂,代码量比较多,我们就可以把这个功能分解成多个小的method,每个方法实现该功能的一个小小的部分,并且方法命名成容易理解,和方法内容相关的名称,更有助于维护和可读性提 ...
- 学习jQuery的事件dblclick
Insus.NET一直以来都是asp.net的开发的,少使用javascript.现在学习asp.net mvc了,jQuery是一个必须掌握的客户端语言. 不用急,慢慢来.一步一步.这篇练习jQue ...
- 脊柱外科病人资料管理系统的界面设计分析(2)--JOA评分记录的实现
在上篇随笔<脊柱外科病人资料管理系统的界面设计分析>中介绍了一些常用的界面设计方面的内容,本篇继续上一篇,介绍脊柱外科病人管理系统的JOA评分记录模块的界面设计以及实现方面的内容. JOA ...
- 【iOS】利用Runtime特性做监控
最近在看Object-C运行时特性,其中有一个特别好用的特性叫 Method Swizzling ,可以动态交换函数地址,在应用程序加载的时候,通过运行时特性互换两个函数的地址,不改变原有代码而改变原 ...
- Free Slideshow, Gallery And Lightboxes Scripts
http://bootstraphelpers.codeplex.com/SourceControl/list/changesets https://github.com/gordon-matt/Bo ...
- AC自动机(1)
Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). ...
- [moka同学笔记]Yii2.0 dropDownList的使用(二)
方法一: <?php $psObjs = Poststatus::find()->all(); $allStatus = ArrayHelper::map($psObjs,'id','na ...
- 常用Keytool 命令
常用Keytool 命令Keytool 是一个JAVA环境下的安全钥匙与证书的管理工具.它管理一个存储了私有钥匙和验证相应公共钥匙的与它们相关联的X.509 证书链的keystore(相当一个数据库, ...
- 六个创建模式之简单工厂模式(Simple Factory Pattern)
定义: 定义一个工厂类,它可以根据参数的不同生成对应的类的实例:被创建的类的实例通常有相同的父类.因为该工厂方法尝尝是静态的,所以又被称为静态工厂方法(Static Factory Method) 结 ...
- Android笔记——什么是json?json如何使用?
什么是json 什么是json,json是什么,json如何使用 JSON是JavaScript Object Notation的缩写,可见JSON来源于JavaScript.JSON数据是一系列键值 ...