在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 ...
随机推荐
- win8.1安装开发工具vs2013.3+mssql2012全程
几个常用的命令 重起计算机命令:shoutdown.exe -r -t 0 立刻重起 在远程桌面中没有关机重起的选项,这个命令是必须的 远程桌面连接:mstsc 硬件环境:I7 4770 64RAM ...
- C#设计模式——生成器模式(Builder Pattern)
一.概述在软件系统中,有时候面临着复杂的对象创建,该对象由一定算法构成的子对象组成,由于需求变化,这些子对象会经常变换,但组合在一起的算法却是稳定的.生成器模式可以处理这类对象的构建,它提供了一种封装 ...
- 在执行Action之间检验是否登录
在执行Action之间检验是否登录,也可以在执行Action前先执行某一个操作 public class BaseController : Controller { protected string ...
- PHP实现上传文件并存进数据库的方法
本文实例讲述了PHP实现上传文件并存进数据库的方法.分享给大家供大家参考.具体如下: show_add.php文件如下: <?php if(!isset($_REQUEST[''id'']) o ...
- Winform中的窗体一些常用属性
Winform窗体的常用窗体属性 1)窗体全屏显示 this.DesktopBounds = Screen.GetWorkingArea(this); //全屏显示桌面 注:可以放在初始化方法中,也 ...
- kfreebsd不适用于实际环境
debian搞的kfreebsd,其中有很多常用的软件包处于依赖破损的状态,个人觉得是无法用作日常开发或生产环境的. 当然,对于只使用其中几项完整可用功能的场景,基本上还是可以的. 当时看个这个东东的 ...
- IBATIS动态SQL(转)
直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值.参数本身和数据列都是动态SQL,通常是非常困难的.典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接.对于这个问题,I ...
- Python tools for Visual Studio插件介绍
Python tools for Visual Studio是一个免费开源的VisualStudio的插件,支持 VisualStudio 2010,2012与2013.我们想要实现的是: ...
- JVM中显示锁基础AbstractQueuedSynchronizer
在研究AbstractQueuedSynchronizer的时候我是以ReentrantLock入手的.所以理所当然会设计到一些ReentrantLock的方法.因为网上已经有很多关于AQS的文章了, ...
- 关于setInterval和setTImeout中的this指向问题
前些天在练习写一个小例子的时候用到了定时器,发现在setInterval和setTimeout中传入函数时,函数中的this会指向window对象,如下例: var num = 0; function ...