NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0)

2024-06-05 13:48

本文主要是介绍NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0环境配置


  • 引言
    • DIGITS简介
    • DIGITS特性
    • 资源信息
    • 说明
  • DIGITS安装
    • 软硬件环境
      • 硬件环境
      • 软件环境
    • 操作系统安装
    • DIGITS安装前准备
      • 安装CUDA70deb方式
        • 显卡切换
      • 安装cuDNN70
      • 安装Caffe-0130
    • 安装DIGITS
    • 启动DIGITS
    • 配置DIGITS
  • 使用DIGITS
    • digits官方自带例子MNIST
      • 下载MNIST数据集
      • 在DIGITS server上创建数据集
      • 在DIGITS server上创建深度网络模型并训练
        • 一个小问题CaffecuDNN
      • 使用DIGITS server 进行分类操作MNIST
  • 结语


引言

DIGITS简介

DIGITS: Deep Learning GPU Training System1,是由英伟达(NVIDIA)公司开发的第一个交互式深度学习GPU训练系统。目的在于整合现有的Deep Learning开发工具,实现深度神经网络(Deep Neural Network,DNN)设计、训练和可视化等任务变得简单化。DIGITS是基于浏览器的接口,因而通过实时的网络行为的可视化,可以快速设计最优的DNN。DIGITS是开源软件,可在GitHub上找到,因而开发人员可以扩展和自定义DIGITS。

DIGITS控制台

DIGITS特性

  • 提供了友好的用户界面,只需简单的点击即完成DNNs的训练。DIGITS是一个Web应用,用浏览器访问,上图是典型的工作流程图。

  • DIGITS用户接口提供了DNN优化工具。主控制台列出了现有的数据库和机器上可用的先前训练好的网络模型以及正在进行的训练活动。

  • DIGITS使可视化网络和快速对比精度变得简单。你选择一个模型,DIGITS显示训练状态和精度,并提供在网络训练时或训练完毕后加载和分类图像的选项。

  • 由于DIGITS运行在一个web服务器上,团队用户可以很方便地分享数据库和网络配置,以及测试和分享结果。

  • DIGITS集成了流行的Caffe deep learning framework,并支持使用cuDNN进行GPU加速。

资源信息

  1. 在百度里搜索:NVIDIA DIGITS
  2. 软件首页(DIGITS):https://developer.nvidia.com/digits
  3. 硬件平台(英伟达搭建的环境,NVIDIA® DIGITS™ DevBox):
    https://developer.nvidia.com/devbox
  4. 相关文档
    http://docs.nvidia.com/deeplearning/index.html#axzz3juAVWoDb

登陆软件首页,注册后下载DIGITS(注意到注册邮箱里点击激活链接),也可以下载源码(基于Python)安装。

参考资料

  1. DIGITS 2支持多GPU自动扩展 实现深度学习性能倍增,原文链接:Easy Multi-GPU Deep Learning with DIGITS 2

  2. EC2上的深度学习:CUDA 7/cuDNN/caffe/DIGITS实战教程,原文链接:GPU Powered DeepLearning with NVIDIA DIGITS on EC2

说明

  1. 如官方所述,DIGITS现在仅支持Ubuntu,当然也在其它Linux系统上测试成功,未见有在Windows上配置的案例;
  2. 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”文件。
使用ReText查看installation.md

软硬件环境

硬件环境

笔记本× 1、CPU(Intel® Core™ i5-3210M CPU @ 2.50GHz × 4 )× 1、GPU(GeForce GT 635M/PCIe/SSE2 + IntelGMAHD3000)× 1。

软件环境

环境简介及下载链接:

  1. 操作系统:Ubuntu 14.04 LTS 64 bit(ubuntu-14.04.3-desktop-amd64.iso)
  2. CUDA:CUDA-7.0(cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb),支持CUDA的GPU
  3. cuDNN:cuDNN-7.0(cudnn-7.0-linux-x64-v3.0-rc.tgz)
  4. Caffe:Caffe-0.13.0(caffe-master.zip,必须是NVIDIA’s fork,原因点此)
  5. DIGITS:DIGITS-2.0(源码安装,DIGITS-master.zip)

操作系统安装

具体安装方法参见:U盘系统盘制作与系统安装(详细图解)。

DIGITS安装前准备

采用源码安装DIGITS前,事先要安装CUDA(必须)、cuDNN(用于GPU加速,建议安装),Caffe(运行DIGITS至少要有一个Deep Learning framework,也可以安装Theano,这里不介绍)。

安装CUDA7.0(“.deb”方式)

CUDA-7.0在Linux下的安装步骤参见官网手册:CUDA_Getting_Started_Linux,其中提及了“.run”、“.deb”等安装文件的安装方法,本人选择”deb”包的格式,因为它比较简单。

0.检查你的电脑是否支持CUDA
检查GPU是否支持:输入如下命令,如果输出的GPU型号是NVIDIA的,并且在此http://developer.nvidia.com/cuda-gpus列表内,则支持。

lspci | grep -i nvidia

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

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

3.安装CUDA

# installing CUDA
sudo dpkg -i cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.debsudo apt-get update
sudo apt-get install cuda

4.设置环境变量

注意:此环境变量为64位系统下的,32位的把lib64改成lib即可。

方式1,仅修改用户变量

# setting the environment variables so CUDA will be foundecho "\nexport PATH=/usr/local/cuda-7.0/bin:$PATH" >> ~/.bashrc
echo "\nexport LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH" >> ~/.bashrc

方式2,修改所有用户变量
先使用sudo gedit /etc/profile打开“profile”文件,或者sudo gedit ~/.bashrc打开“./bashrc”文件,然后在打开的文件的末尾添加如下代码并保存

# setting the environment variables so CUDA will be found
# After open profile, Add follow code at the end of file
export PATH=/usr/local/cuda-7.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH

5.加载新的环境变量:添加好环境变量后,需要加载新的环境变量,才能应用于系统。

加载更新环境变量source ~/.bashrc(方式1),source /etc/profilesource ~/.bashrc(方式2)。

=====重启系统!重启系统!重启系统!=======

sudo reboot

6.安装samples并检查CPU:samples被默认安装在/home/liu下:

# installing the samples and checking the GPUcuda-install-samples-7.0.sh ~/
cd NVIDIA_CUDA-7.0_Samples/1_Utilities/deviceQuery
make  
./deviceQuery

执行完./deviceQuery命令,终端输出如下类似信息,有GPU型号、驱动版本和运行版本、计算能力……诸多信息:
GPU设备信息

至此CUDA安装成功。

显卡切换

如果你用的是具有双显卡的PC机,比如本人的Intel集成显卡+NVIDIA的独立显卡,可以使用nvidia-prime来切换使用哪个显卡。双击/usr/share/applications/NVIDIA X Server Settings启动NVIDIA X Server 设置,如下图,但不像网上说的有nvidia-prime那一项:
NVIDIA X Server Settings

于是自己安装NVIDIA-prime指示器,命令如下:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install prime-indicator
sudo reboot

重启系统后,在右上方托盘区可见NVIDIA或Intel的图标,点击即可切换。

安装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

2.copy文件至CUDA安装目录:解压后,在你的目录下生成一个“cuda”文件夹,对于cuDNN6.5的版本解压后生成“cudnn-6.5-linux-x64-v2”文件。使用如下命令copy,注意第二个有个-a参数,否则,拷贝过去的文件失去了链接。

# copy the library files into CUDA's include and lib folders
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -a cuda/lib64/libcudnn* /usr/local/cuda/lib64

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

2.安装其它的依赖库:查看“requirements.txt”文件,请注意将下面的路径替换为你的路径。

cd ~/sfw/caffe/python
for req in $(cat requirements.txt); do sudo pip install $req; done

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

编译时间比较漫长,可以使用多线程,需要知道你的电脑的线程数,下面这样会快好多:

make all -j4  
make py -j4
make test -j4  
make runtest -j4

编译中没有错误提示,说明正确。

3.添加环境变量:方法同CUDA(安装CUDA7.0(“.deb”方式)),只是环境变量名称及路径需要变化,如:

# Add environment
echo -e "\nexport CAFFE_HOME=/home/liu/sfw/caffe" >> ~/.bashrc
# load the new environmental variables
source ~/.bashrc

或者:

# 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

这样caffe就安装好了!如果在make runtest时提示“Core dumped”,现象截图及解决办法见一个小问题(Caffe&cuDNN)。

安装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

如果网络不好,或软件源服务关闭等等可能造成某些依赖库无法下载和安装,终端会有大片红色文字,请更改软件源确认网络连接正常,重新执行上述命令。

启动DIGITS

进入digits文件夹,给文件“./digits-devserver”赋予可执行权限,然后./digits-devserver运行digits:

cd ~/sfw/digits
chmod +x ./digits-devserver
./digits-devserver

第一次运行会提示输入caffe的安装路径:
输入caffe的安装路径

运行时可能会提示启动失败:$ImportError: /usr/lib/liblapack.so.3: undefined symbol: ATL_chemv

在stackoverflow找到了原因及解决方法,命令如下:

sudo apt-get remove libopenblas-base

然后在终端输入./digits-devserver,即可成功启动:
启动digits server

久违的界面终于出来了:
digits server

配置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

使用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

执行后,可以在/digits/data/mnist目录下看到下载好的数据集,如下图:
下载的MNIST数据集

在DIGITS server上创建数据集

这里按照“GettingStarted.md”文件中所述,创建数据集为分类数据集:在digits server首页的DataSets区域点击Images,选择Classfication,在弹出的窗口填写训练数据集信息,这里为60000个样本(“GettingStarted.md”里的例子样本数为10k),信息见下图:
创建数据集

数据集创建过程:
digits server正在创建数据集

digits创建的数据集信息

点击左上角的“DIGITS”返回查看创建好的MNIST train 60k数据集:
查看创建好的数据集

在DIGITS server上创建深度网络模型并训练

如上图,在Models区域点击Images,选择Classfication。在弹出的页面填写信息,数据集选择:MNIST train 60k,模型命名为:LeNet on MNIST 60k,如下图:
创建网络模型为LeNet

点击蓝色按钮“Create”后,任务即开始执行!

一个小问题(Caffe&cuDNN)

原以为可以兴奋地看到结果,然而失望了,报出了错误:

ERROR: Check failed: status == CUDNN_STATUS_SUCCESS (6 vs. 0) CUDNN_STATUS_ARCH_MISMATCH

如下图:
出错啦

其实,在安装Caffe时,当运行make runtest时就有个小问题,报出了“Check failure”,不过让我直接忽略了,没想到又回来了,哈哈。
Chek 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

:访问CUDA GPUs查看GPU的计算能力,在页面选择GPU的型号,如Geforce GT 635M,如下图:
GPU的计算能力信息

编译完成后,删除之前建的LetNet on MNIST 60k任务,然后仿造上述步骤,重新新建一个任务,执行后,如下图:
运行界面

运行过程,网络的训练状态,GPU的状态等信息会实时显示:
运行状态

学习率与训练代数关系
学习率与训练代数关系图

使用DIGITS server 进行分类操作(MNIST)

训练结束后,可以对手写体数字图像进行分类,可以对单个图像分类,也可以同时分类多幅图像,这里以上述步骤中生成的“MNIST train 60k”数据集中的验证集为例。

在“Upload Image List”区域点击选择文件按钮,选择验证集的 list文件val.txt:
选择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的一些信息,也可以在本人的其它博客里找到。


  • 引言
    • DIGITS简介
    • DIGITS特性
    • 资源信息
    • 说明
  • DIGITS安装
    • 软硬件环境
      • 硬件环境
      • 软件环境
    • 操作系统安装
    • DIGITS安装前准备
      • 安装CUDA70deb方式
        • 显卡切换
      • 安装cuDNN70
      • 安装Caffe-0130
    • 安装DIGITS
    • 启动DIGITS
    • 配置DIGITS
  • 使用DIGITS
    • digits官方自带例子MNIST
      • 下载MNIST数据集
      • 在DIGITS server上创建数据集
      • 在DIGITS server上创建深度网络模型并训练
        • 一个小问题CaffecuDNN
      • 使用DIGITS server 进行分类操作MNIST
  • 结语



  1. http://devblogs.nvidia.com/parallelforall/digits-deep-learning-gpu-training-system/ ↩
  2. http://blog.csdn.net/songyu0120/article/details/43233907 ↩

这篇关于NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1033226

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu系统使用官方操作命令升级Dify指南

《ubuntu系统使用官方操作命令升级Dify指南》Dify支持自动化执行、日志记录和结果管理,适用于数据处理、模型训练和部署等场景,今天我们就来看看ubuntu系统中使用官方操作命令升级Dify的方... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。

如何在Ubuntu上安装NVIDIA显卡驱动? Ubuntu安装英伟达显卡驱动教程

《如何在Ubuntu上安装NVIDIA显卡驱动?Ubuntu安装英伟达显卡驱动教程》Windows系统不同,Linux系统通常不会自动安装专有显卡驱动,今天我们就来看看Ubuntu系统安装英伟达显卡... 对于使用NVIDIA显卡的Ubuntu用户来说,正确安装显卡驱动是获得最佳图形性能的关键。与Windo

双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程

《双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程》:本文主要介绍如何在Windows11系统中使用VMware17创建虚拟机,并在虚拟机中安装Ubuntu22.04桌面版或Ubunt... 目录一、首先win11中安装vmware17二、磁盘分区三、保存四、使用虚拟机进行系统安装五、遇见的错误和解决