NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0)
转自:http://blog.csdn.net/enjoyyl/article/details/47397505?from=timeline&isappinstalled=0#10006-weixin-1-52626-6b3bffd01fdde4900130bc5a2751b6d1
NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0环境配置
引言
DIGITS简介
DIGITS: Deep Learning GPU Training System1,是由英伟达(NVIDIA)公司开发的第一个交互式深度学习GPU训练系统。目的在于整合现有的Deep Learning开发工具,实现深度神经网络(Deep Neural Network,DNN)设计、训练和可视化等任务变得简单化。DIGITS是基于浏览器的接口,因而通过实时的网络行为的可视化,可以快速设计最优的DNN。DIGITS是开源软件,可在GitHub上找到,因而开发人员可以扩展和自定义DIGITS。
DIGITS特性
提供了友好的用户界面,只需简单的点击即完成DNNs的训练。DIGITS是一个Web应用,用浏览器访问,上图是典型的工作流程图。
DIGITS用户接口提供了DNN优化工具。主控制台列出了现有的数据库和机器上可用的先前训练好的网络模型以及正在进行的训练活动。
DIGITS使可视化网络和快速对比精度变得简单。你选择一个模型,DIGITS显示训练状态和精度,并提供在网络训练时或训练完毕后加载和分类图像的选项。
由于DIGITS运行在一个web服务器上,团队用户可以很方便地分享数据库和网络配置,以及测试和分享结果。
DIGITS集成了流行的Caffe deep learning framework,并支持使用cuDNN进行GPU加速。
资源信息
- 在百度里搜索:NVIDIA DIGITS
- 软件首页(DIGITS):https://developer.nvidia.com/digits
- 硬件平台(英伟达搭建的环境,NVIDIA® DIGITS™ DevBox):
https://developer.nvidia.com/devbox - 相关文档:
http://docs.nvidia.com/deeplearning/index.html#axzz3juAVWoDb
登陆软件首页,注册后下载DIGITS(注意到注册邮箱里点击激活链接),也可以下载源码(基于Python)安装。
参考资料:
DIGITS 2支持多GPU自动扩展 实现深度学习性能倍增,原文链接:GPU Powered DeepLearning with NVIDIA DIGITS on EC2
EC2上的深度学习:CUDA 7/cuDNN/caffe/DIGITS实战教程,原文链接:GPU Powered DeepLearning with NVIDIA DIGITS on EC2
说明
- 如官方所述,DIGITS现在仅支持Ubuntu,当然也在其它Linux系统上测试成功,未见有在Windows上配置的案例;
- DIGITS尝试囊括更多的开源Deep Learning 框架,当前(digits-2.0)仅包括:Caffe, Torch, Theano, and BIDMach.
DIGITS安装
安装指导,官网说DIGITS的安装相当方便:1)访问digits home page注册并下载安装器安装;或者2)从GitHub上获取源代码安装。实际上,对于新手来说并非如此,下面介绍采用源码的安装方式。
说明1:本人将采用源码安装的软件的安装根目录为:/home/liu/sfw
,即~/sfw
,本文中记为yourpath。这样Caffe的安装路径:/home/liu/sfw/caffe
,DIGITS的安装路径:/home/liu/sfw/digits
;而CUDA默认安装根目录为/usr/local
。
说明2:每个软件的安装方法可以查看官网的在线帮助,也可以查看源码中的文档。对于后者,多为“.md”即markdown文件,可以安装ReText查看,如下图为预览的Caffe的“installation.md”文件。
软硬件环境
硬件环境
笔记本× 1、CPU(Intel® Core™ i5-3210M CPU @ 2.50GHz × 4 )× 1、GPU(GeForce GT 635M/PCIe/SSE2 + IntelGMAHD3000)× 1。
软件环境
环境简介及下载链接:
- 操作系统:Ubuntu 14.04 LTS 64 bit(ubuntu-14.04.3-desktop-amd64.iso)
- CUDA:CUDA-7.0(cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb),支持CUDA的GPU
- cuDNN:cuDNN-7.0(cudnn-7.0-linux-x64-v3.0-rc.tgz)
- Caffe:Caffe-0.13.0(caffe-master.zip)
- DIGITS:DIGITS-2.0(源码安装,DIGITS-master.zip)
操作系统安装
具体安装方法参见:U盘系统盘制作与系统安装(详细图解)。
DIGITS安装前准备
采用源码安装DIGITS前,事先要安装CUDA(必须)、cuDNN(用于GPU加速,建议安装),Caffe(运行DIGITS至少要有一个Deep Learning framework,也可以安装Theano,这里不介绍)。
安装CUDA7.0(“.deb”方式)
1.下载安装文件:可以直接访问上面给出的官网链接下载,也可以在终端窗口输入如下命令下载。
# downloading the (currently) most recent version of CUDA 7
sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0.28_amd64.deb
- 1
- 2
2.安装依赖工具:需要连网。
# installation of required tools
sudo apt-get install -y gcc g++ gfortran build-essential \
git wget linux-image-generic libopenblas-dev python-dev \
python-pip python-nose python-numpy python-scipy
- 1
- 2
- 3
- 4
3.安装CUDA:
# installing CUDA
sudo cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb
sudo apt-get update
sudo apt-get install cuda
- 1
- 2
- 3
- 4
- 5
4.设置环境变量:
方式1,仅修改用户变量
# setting the environment variables so CUDA will be found
echo -e "\nexport CUDA_HOME=/usr/local/cuda" >> ~/.bashrc
echo -e "\nexport LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH" >> ~/.bashrc
- 1
- 2
- 3
方式2,修改所有用户变量
先使用sudo gedit /etc/profile
打开“profile”文件,
然后在打开的“profile”文件的末尾添加如下代码并保存:
# setting the environment variables so CUDA will be found
# After open profile, Add follow code at the end of file
export CUDA_HOME="/usr/local/cuda"
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
- 1
- 2
- 3
- 4
5.加载新的环境变量:添加好环境变量后,需要加载新的环境变量,才能应用于系统。
重启sudo reboot
,或加载更新环境变量source ~/.bashrc
(方式1),source /etc/profile
(方式2)。
6.安装samples并检查CPU:samples被默认安装在/home/liu
下:
# installing the samples and checking the GPU
cuda-install-samples-7.0.sh ~/
cd NVIDIA_CUDA-7.0_Samples/1_Utilities/deviceQuery
make
./deviceQuery
- 1
- 2
- 3
- 4
- 5
- 6
以上过程,终端都没有给出错误信息,则证明CUDA安装成功。
安装cuDNN7.0
cuDNN的安装很简单:
1.解压:进入“cudnn-7.0-linux-x64-v3.0-rc.tgz”所在目录,将文件解压,如下:
#注意修改成你的目录
cd /home/liu/sfw
#解压
gzip -d cudnn-7.0-linux-x64-v3.0-rc.tgz
tar xf cudnn-7.0-linux-x64-v3.0-rc.tar
- 1
- 2
- 3
- 4
- 5
2.copy文件至CUDA安装目录:解压后,在你的目录下生成一个“cuda”文件夹,对于cuDNN6.5的版本解压后生成“cudnn-6.5-linux-x64-v2”文件。使用如下命令copy
# copy the library files into CUDA's include and lib folders
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
- 1
- 2
- 3
cuDNN安装完成。
安装Caffe-0.13.0
官网的安装方法:http://caffe.berkeleyvision.org/installation.html。
下载好Caffe-0.13.0后,解压文件caffe-master.zip生成“caffe-master”文件夹,并将其重命名为“caffe”,放在yourpath根目录下下,如:/home/liu/sfw
。
1.首先安装一些依赖库:CUDA(已安装)、BLAS 、Boost、OpenCV等等,见官网的安装方法:http://caffe.berkeleyvision.org/installation.html,或自述文件(installation.md)。
sudo apt-get install libprotobuf-dev libleveldb-dev \
libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev \
libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler \
libatlas-base-dev
- 1
- 2
- 3
- 4
2.安装其它的依赖库:查看“requirements.txt”文件,请注意将下面的路径替换为你的路径。
cd ~/sfw/caffe/python
for req in $(cat requirements.txt); do sudo pip install $req; done
- 1
- 2
2.修改配置文件并编译:终端进入“caffe”文件夹,复制一份Makefile.config文件,然后修改Makefile.config文件,如不使用GPU,可以去掉#GPU_ONLY=1
的注释符:#
,请根据需要自行修改,这里采用默认值,不做修改。然后进行编译:
cd ~/sfw/caffe
cp Makefile.config.example Makefile.config
# for a faster build, compile in parallel by doing make all -j8 where 8 is the number of parallel threads for compilation (a good choice for the number of threads is the number of cores in your machine).
make all
make py
make test
make runtest
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
编译时间比较漫长,可以使用多线程,需要知道你的电脑的线程数,下面这样会快好多:
make all -j4
make py -j4
make test -j4
make runtest -j4
- 1
- 2
- 3
- 4
编译中没有错误提示,说明正确。
3.添加环境变量:方法同CUDA(安装CUDA7.0(“.deb”方式)),只是环境变量名称及路径需要变化,如:
# Add environment
echo -e "\nexport CAFFE_HOME=/home/liu/sfw/caffe" >> ~/.bashrc
# load the new environmental variables
source ~/.bashrc
- 1
- 2
- 3
- 4
或者:
# Add environment
sudo gedit /etc/profile
# After open profile, Add follow code at the end
# Set Caffe environment
export CAFFE_HOME="/home/liu/sfw/caffe"
# load the new environmental variables
source /etc/profile
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
这样caffe就安装好了!
安装DIGITS
1.解压文件:终于可以安装DIGITS了,解压下载好的DIGITS-master.zip文件生成“DIGITS-master”文件夹,将其重命名为“digits”,并copy到你的目录yourpath,如/home/liu/sfw下面。
2.安装DIGITS:命令如下,注意修改路径。
cd /home/liu/sfw/digits
sudo apt-get install graphviz gunicorn
for req in $(cat requirements.txt); do sudo pip install $req; done
- 1
- 2
- 3
启动DIGITS
进入digits文件夹,给文件“./digits-devserver”赋予可执行权限,然后./digits-devserver
运行digits:
cd ~/sfw/digits
chmod +x ./digits-devserver
./digits-devserver
- 1
- 2
- 3
运行时可能会提示启动失败:$ImportError: /usr/lib/liblapack.so.3: undefined symbol: ATL_chemv
在stackoverflow找到了原因及解决方法,命令如下:
sudo apt-get remove libopenblas-base
- 1
然后在终端输入./digits-devserver
,即可成功启动:
久违的界面终于出来了:
配置DIGITS
上述步骤,是按默认配置启动digits,如果你想自定义配置,可以在启动前输入:
Most values are set silently by default. If you need more control over your configuration, try one of these commands:
# Set more options before starting the server
./digits-devserver --config
# Advanced usage
python -m digits.config.edit --verbose
- 1
- 2
- 3
- 4
- 5
使用DIGITS
digits官方自带例子(MNIST)
参见GettingStarted或源码包中的“GettingStarted.md”文件。
下载MNIST数据集
DIGITS提供了下载数据集MNIST和CIFAR的工具,在/digits/tools/download_data
目录下,包含如下文件:
执行其中的main.py程序即可:
主要代码如下:
#首次使用赋予执行权限
chmod +x *.py
#查看帮助
./main.py -h
#创建一个目录用于存放MNIST数据集
mkdir -p /home/liu/sfw/digits/data/mnist
#下载数据集至上述目录
./main.py -c mnist ~/sfw/digits/data/mnist
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
执行后,可以在/digits/data/mnist
目录下看到下载好的数据集,如下图:
在DIGITS server上创建数据集
这里按照“GettingStarted.md”文件中所述,创建数据集为分类数据集:在digits server首页的DataSets区域点击Images,选择Classfication,在弹出的窗口填写训练数据集信息,这里为60000个样本(“GettingStarted.md”里的例子样本数为10k),信息见下图:
数据集创建过程:
点击左上角的“DIGITS”返回查看创建好的MNIST train 60k数据集:
在DIGITS server上创建深度网络模型并训练
如上图,在Models区域点击Images,选择Classfication。在弹出的页面填写信息,数据集选择:MNIST train 60k,模型命名为:LeNet on MNIST 60k,如下图:
点击蓝色按钮“Create”后,任务即开始执行!
一个小问题(cuDNN)
原以为可以兴奋地看到结果,然而失望了,报出了错误:
ERROR: Check failed: status == CUDNN_STATUS_SUCCESS (6 vs. 0) CUDNN_STATUS_ARCH_MISMATCH
- 1
如下图:
其实,在安装Caffe时,当运行make runtest
时就有个小问题,报出了“Check failure”,不过让我直接忽略了,没想到又回来了,哈哈。
这是因为笔记本上的GT635M的计算能力CUDA Capability是2.1,而官方的cuDNN加速是不支持3.0以下的版本的,因此只能在Makefile.config中注释掉USE_CUDNN这行,重新执行以下编译2。
make clean
make all -j4
make test -j4
make runtest -j4
- 1
- 2
- 3
- 4
注:访问CUDA GPUs查看GPU的计算能力,在页面选择GPU的型号,如Geforce GT 635M,如下图:
编译完成后,删除之前建的LetNet on MNIST 60k任务,然后仿造上述步骤,重新新建一个任务,执行后,如下图:
运行过程,网络的训练状态,GPU的状态等信息会实时显示:
学习率与训练代数关系
使用DIGITS server 进行分类操作(MNIST)
训练结束后,可以对手写体数字图像进行分类,可以对单个图像分类,也可以同时分类多幅图像,这里以上述步骤中生成的“MNIST train 60k”数据集中的验证集为例。
在“Upload Image List”区域点击选择文件
按钮,选择验证集的 list文件val.txt:
选择好后,点击Classify Many Images
按钮,即可对多幅图像分类,这时,界面上没有显示进度,在终端中显示,如下图:
对所选图像分类完成后,弹出分类结果页面:
可视化分类结果:
结语
本文记录了本人安装配置NVIDIA DIGITS步骤与方法,软件环境为Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0 + DIGITS 2.0。并以DIGITS自述文件中的例子为例,简单介绍了DIGITS的用法。
可见,DIGITS的源码安装方式还是有一定难度,特别是对Linux不熟悉的使用者。DIGITS的使用很方便,只需进行简单的点击操作,即可完成数据集创建、网络模型创建、网络训练、网络训练状态的实时显示、用训练好的网络进行图像分类等任务,使得不熟悉深度学习的人员也可以在深度学习的大海中轻而易举地航行,这正式DIGITS的设计目的所在。
DIGITS除了支持Caffe,还支持Theano,本文并未介绍Theano,不过会陆续补充,关于Theano的一些信息,也可以在本人的其它博客里找到。
NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0)的更多相关文章
- caffe学习笔记(1)安装 - Ubuntu 15.04
官方安装手册 备注:使用系统 - Ubuntu 15.04 64位操作系统(若系统位于虚拟机上,在安装CUDA后,Ubuntu将无法进入图形界面) /************************* ...
- 学习笔记︱Nvidia DIGITS网页版深度学习框架——深度学习版SPSS
DIGITS: Deep Learning GPU Training System1,是由英伟达(NVIDIA)公司开发的第一个交互式深度学习GPU训练系统.目的在于整合现有的Deep Learnin ...
- Ubuntu 14.04(64位)+GTX970+CUDA8.0+Tensorflow配置 (双显卡NVIDIA+Intel集成显卡) ------本内容是长时间的积累,有时间再详细整理
(后面内容是本人初次玩GPU时,遇到很多坑的问题总结及尝试解决办法.由于买独立的GPU安装会涉及到设备的兼容问题,这里建议还是购买GPU一体机(比如https://item.jd.com/396477 ...
- Ubuntu 14.04 16.04 Linux nvidia 驱动下载与安装
Ubuntu 14.04 16.04 nvidia 驱动安装 最简单直观的方式是在如下的对话框中直接选择驱动安装即可 但是有时候,驱动不够新,比如14.04用的是340.98版本,如果手动安装驱动可以 ...
- ubuntu 14.04 如何安装nvidia显卡驱动 [转载]
我的机子装的是64位ubuntu 14.04 LTS系统,显卡是GeForce 405 ,想使用cuda所以需要装NVidia官方驱动,但是总是碰到 nouveau 驱动正在使用的问题.找了好久,网上 ...
- Ubuntu 14.04 64bit下Caffe + Cuda6.5/Cuda7.0 安装配置教程
http://www.embeddedlinux.org.cn/emb-linux/entry-level/201612/21-6005.html 随着深度学习快速发展的浪潮,许多有兴趣的工作者都转入 ...
- Caffe + Ubuntu 15.04 + CUDA 7.0 安装以及配置
作为小码农的我,昨天就在装这个东东了,主要参考第一篇博文,但是过程发现很多问题,经过反反复复,千锤百炼,终于柳暗花明,我把这个caffe给搞定了,是故,我发布出来,后之来者,欲将有感于斯文~ 本分分为 ...
- tensorflow 1.8, ubuntu 16.04, cuda 9.0, nvidia-390,安装踩坑指南。
被tensorflow 1.8, ubuntu 16.04, cuda 9.0, nvidia-390折磨了5天,终于上坑,留下指南,造福后人. 1.先把依赖搞清楚: tensorflow 1.8依赖 ...
- Caffe使用: Ubuntu 14.04(x64) 从cuda 7.0 升级到 cuda8.0
由于之前已经在Ubuntu 14.04 x64上面安装cuda7.0+caffe, 并且已经配置好,caffe也已经跑通. 但是最近需要使用Torch,而Torch对cuda的要求是8.0,因此决定对 ...
随机推荐
- 【learning】矩阵树定理
问题描述 给你一个图(有向无向都ok),求这个图的生成树个数 一些概念 度数矩阵:\(a[i][i]=degree[i]\),其他等于\(0\) 入度矩阵:\(a[i][i]=in\_degree[i ...
- HDU 5489 二分 LIS
Removed Interval Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- centos7-java模拟cpu占用高及排查
环境 centos7 1核2GB Java8 模拟cpu占用高 新建一个名为jvm-learn的springboot项目 模拟代码如下 import org.springframework.boot. ...
- 一张图搞懂Spring bean的完整生命周期
一张图搞懂Spring bean的生命周期,从Spring容器启动到容器销毁bean的全过程,包括下面一系列的流程,了解这些流程对我们想在其中任何一个环节怎么操作bean的生成及修饰是非常有帮助的. ...
- 数组与集合List的相互转化
数组转化为集合 #此运用的是Arrays中的asList方法,返回一个List集合 *当数组元素为基本数据类型是把整个数组当作一个元素放入List集合中,代码举例: ,,}; List<int[ ...
- 【BZOJ】4033: [HAOI2015]树上染色 树上背包
[题目]#2124. 「HAOI2015」树上染色 [题意]给定n个点的带边权树,要求将k个点染成黑色,使得 [ 黑点的两两距离和+白点的两两距离和 ] 最大.n<=2000. [算法]树上背包 ...
- 2017ACM暑期多校联合训练 - Team 8 1006 HDU 6138 Fleet of the Eternal Throne (字符串处理 AC自动机)
题目链接 Problem Description The Eternal Fleet was built many centuries ago before the time of Valkorion ...
- 自定义li项目符号
使用background-image属性 先清除ul的默认list-style ul{ list-style:none } li{ background-image:url('./image/symb ...
- oracle数据库的date和timestamp类型
1.date类型存储数据的格式为年月日时分秒,可以精确到秒 timestamp类型存储数据的格式为年月日时分秒,可以精确到纳秒(9位) 2.date类型 Date类型的数据可以显示到年月日,也可以显示 ...
- linux——vi和vim的区别
vi 和vim 的区别 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方面:1.多级撤消我们知道 ...