备案 控制台
开发者社区 雷锋网 文章 正文

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

简介:

锋网首发。

  引言

2006年,机器学习界泰斗Hinton,在Science上发表了一篇使用深度神经网络进行维数约简的论文 ,自此,神经网络再次走进人们的视野,进而引发了一场深度学习革命。深度学习之所以如此受关注,是因为它在诸如图像分类、目标检测与识别、目标跟踪、语音识别、游戏(AlphaGo)等多个领域取得了相当优秀的成绩,掀起了又一波人工只能浪潮。深度学习技术逐渐成为机器学习领域的前沿技术,近年来得到了突飞猛进的发展,这得益于机器学习技术的进步以及计算设备性能的提升。英伟达公司研发的图形处理器(Graphics Processing Unit,GPU),无疑为深度学习的发展提供了强有力的硬件支撑!

英伟达想必大家都有所耳闻,但对英伟达开发的深度学习训练系统( NVIDIA Deep Learning GPU Training System, DIGITS) 知之甚少,今天我们介绍如何使用DIGITS,实现基于深度神经网络的图像分类,包括数据集创建、模型创建、模型训练、模型测试等等。

面对众多的深度学习开发框架,你是不是安装配置深度学习开发框架环境中,是不是苦于码代码、调试改Bug中。那么,今天你将发现,世界上还有一款超级简单易用的深度学习平台工具,是的,这就是DIGITS。说到底,DIGITS是对现有流行深度学习开发框架的最高级的抽象封装,你所需做的只不过是点点按钮、改改参数,就能轻松实现基于深度学习模型的图像分类、目标检测、分割等任务,并以图形界面的方式展现出来。目前DIGITS支持 Caffe、Torch,7月份将开始支持Tensorflow,开发人员,正在努力工作,使其支持更多的深度学习框架,如下图所示:

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

DIGITS支持的深度学习框架(来自英伟达官网)

下面,让我们一起学习如何使用DIGITS,实现基于深度卷积网络的手写体图像分类任务,让我们一起成为人工智能时代的弄潮儿!

  DIGITS安装

由于本文重点介绍如何使用DIGITS实现深度学习图像分类,这里仅给出安装参考与注意事项。

现今,DIGITS已经有了三种安装姿势:

● Ubuntu 包管理器

● Docker

● 源码编译

具体请移步  NVIDIA DIGITS Installation。2015年时,DIGITS出道时还只有源码安装方式,时隔一年竟然有了 deb 安装方式,果断试用,按照官方说明分分钟安装完毕~.~

注:Ubuntu16.04下安装Caffe,会有比较多的坑,跳进去再跳出来就行了,不过,对于初学者,可能得几个小时,甚至几天的时间才能跳出来。

无论哪种安装姿势,都要确保有以下核心实料:

● 装有GPU卡的PC机(有服务器更好);

● Linux系统(建议Ubuntu,本文 Ubuntu16.04 LTS);

● CUDA驱动(本文版本8.0,Linux版有 run 和 deb 两种安装包,前者需要卸载系统自带驱动,一不小心可能就进不去图形界面了,需谨慎 ,具体安装方法,参见英伟达官方安装手册)或自行搜索;

● 深度学习框架:如 Caffe, CNTK, TensorFlow, Theano and Torch 等其中的一种或多种(目前支持Caffe和Torch);

● DIGITS

Ubuntu deb 包安装

很简单,打开终端(快捷键 Ctrl + Alt + T),执行如下命令,既可以自动安装 digits, caffe-nv, torch7-nv, libcudnn,其中,xxx-nv 是指英伟达 fork 的xxx框架版本。具体安装方法,参见: DIGITS Ubuntu Installation。

DIGITS Ubuntu deb 安装命令


#添加源
# For Ubuntu 16.04
CUDA_REPO_PKG=http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
ML_REPO_PKG=http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb

# Install repo packages
wget "$CUDA_REPO_PKG" -O /tmp/cuda-repo.deb && sudo dpkg -i /tmp/cuda-repo.deb && rm -f /tmp/cuda-repo.deb
wget "$ML_REPO_PKG" -O /tmp/ml-repo.deb && sudo dpkg -i /tmp/ml-repo.deb && rm -f /tmp/ml-repo.deb

# Download new list of packages
sudo apt-get update
# Install 
sudo apt-get install digits


源码安装

DIGITS的源码可以在GitHub上找到,即这里: GitHub DIGITS,具体编译构建安装过程参见: NVIDIA DIGITS Source Installation。

提示:

安装过程若提示错误:ImportError: No module named setuptools 可以使用 sudo apt install python-setuptools 解决。


cd ~/sfw
git clone https://github.com/NVIDIA/DIGITS.git


  DIGITS使用入门

终于可以开始使用DIGITS了,首先打开你的浏览器,然后:

● 对于使用deb包安装的童鞋,在浏览器地址栏输入 http://localhost/ 访问 DIGITS server 主页;

● 对于采用其他安装方式(using digits-devserver)的童鞋,在浏览器地址栏输入 http://localhost:5000/ 访问 DIGITS server 主页;

现在开始吧!DIGITS server主页界面如下,可见使用DIGITS做深度学习应用,非常简单明了人性化,就是点点按钮的事;点击图中Images下拉菜单按钮,可以看到,如今DIGITS已经支持 图像预处理、分类、目标识别、分割:等多种学习任务。

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

DIGITS Server Home 页简介

废话少说,开始正题,使用 DIGITS ,基本分三步:

● 第一步:准备并创建数据集

● 第二步:设计并创建任务模型

● 第三步:训练测试模型

下面以手写体分类为例,说明如何利用 DIGITS,轻松实现基于深度学习中的卷积神经网络的图像分类任务。

  使用DIGITS实现基于深度学习的图像分类

● 数据集:手写体数据集  MNIST:含 0~9 十个数字,60000个训练样本,10000个测试样本;

● 网络模型:卷积神经网络  LeNet-5:一种卷积神经网络。

详情参见  Yann LeCun 主页。

下载MNIST数据集

你可访问上述数据集链接下载并解压数据,也可以使用 DIGITS 提供的数据集下载工具直接下载解压数据,数据会被下载到你指定的目录下(yourdir),本文中:


python -m digits.download_data mnist ~/yourdir/mnist


下载完成后,在你指定的目录下可以看到如下文件:

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

创建数据集

在DIGITS server Home页,以此选择 Datasets > New Dataset > Images > Classification ,然后随便取个用户名(username),提交(Submit),在弹出的页面中,按下图所示填写数据集信息。

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

DIGITS MNIST 数据集创建页面

创建完成后,可以在MNIST数据集页面查看验证数据集信息,如下图所示:

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

创建好的MNIST数据集页面

创建好的MNIST数据集的训练集统计信息如下图所示:

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

训练集统计信息——频率直方图

创建模型

我们使用经典的LeNet模型来实现手写体图像的分类,LeNet是一个卷积神经网络,它依次包含一个输入层(INPUT)、卷积层(C1)、池化层,也叫下采样层(S2)、卷积层(C3)、下采样层(S4)、卷积层(C5)、全连接层(F6)和一个输出层,由于有0~9个数字,所以输出层的神经元的个数是10。这么复杂的结构,宝宝得写多少行代码,宝宝不想当程序猿 ~,~

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

用于手写体分类的LeNet网络结构

然而,你不用担心,使用DIGITS,你只需要点点按钮,改改参数即可,由于是经典模型,这里连该参数都不用,点按钮就行了。点击左上角的 DIGITS 按钮,返回主页,此时,可以看到数据集(DataSets)页面多了个刚刚创建的MNIST数据集。依次选择 Models > New Model > Images > Classification 弹出模型设置界面,依次按如下步骤操作:

● 在Select Dataset 区选择 “MNIST” 数据集;

● 在下面的Standard Networks 标签页选择Caffe 版的 LeNet network;

● 选择GPU;

● 给模型命个名字;

● 点击 Create 按钮创建模型

如下图所示:

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

用于手写体分类的LeNet网络模型训练与测试设置

当然,你也可以设置训练代数、验证间隔(代数)、优化方法、学习率等参数。

训练模型

创建完模型后,DIGITS 开始网络的训练,并实时显示训练损失、验证损失、验证正确率、学习率变化、GPU资源占用等信息,如下图所示,非常直观和友好,有木有,~.~

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

DIGITS MNIST LeNet分类网络训练过程图

喝杯咖啡,或出去溜达溜达即可!

测试

现在到了测试你的模型的时候了,如下图所示,有三种选择:

● Classify One:单幅图像分类,可以可视化数据、权重、隐藏层输出等;

● Classify Many:多幅图像分类,可以查看多幅图像的分类结果统计信息;

● Top N Predictions per Category:每类的Top N分类预测图示。

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

测试你的手写体分类模型

上述手写体分类模型,对数字6的某幅图像分类结果如下图所示,非常直观友好有木有,宝宝瞬间喜欢上人工智能了耶:

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

上述手写体分类模型,对10000个测试样本图像的分类统计结果如下图所示,哇,这么高大上的矩阵我也有了:

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

上述手写体分类模型,Top N分类统计结果如下图所示,宝宝决定要搞深度了,谁都不能阻挡我:

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

  后记

本文介绍了 DIGITS 及其安装,以及使用 DIGITS 进行图像分类的步骤与方法,包括数据集的创建、模型的创建与训练、模型测试等等。总结起来,使用DIGITS做深度学习应用,简直就是点点点,免去了使用Caffe等其它框架繁琐的环境配置、枯燥的码代码 Debug 的过程,你不需要去学习Python等语言,你甚至都不需要了解模型算法原理,就能轻松享受深度学习的乐趣,这一切 DIGITS 都已经为你做好,简直太爽啦!~.~ ~.~ ~.~

如果你不是程序猿,如果你不了解深度学习,如果你不知道选择何种深度学习框架,如果你不想把精力耗费在码代码上,而你却非常想了解深度学习,以至于你想成为人工智能时代的弄潮儿,那么DIGITS是你最好的入门选择!生活原本很简单,为什么要过得复杂呢?

如果你已经迫不及待地想在 DIGITS 上一试身手,如果你想找个深度学习“老司机”领路,如果你有诸多深度学习技术相关的难题有待解决,那么这里正好有个绝佳的机会:

7 月 8 日,在第二届 CCF-GAIR 2017 全球人工智能与机器人峰会上( 详情链接),雷锋网将联合英伟达深度学习学院(Deep Learning Institute,DLI),面向 AI 技术从业者,特别推出一个深度学习开发者专场。对深度学习和英伟达 GPU 加速感兴趣的开发者们,可以通过这次活动跟英伟达官方认证工程师来一次面对面的技术畅谈。

具体议程安排如下:

不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题

目前,开发者专场门票正在火热售卖中,只需 999元 即可获得与英伟达官方深度学习团队现场交流的机会,数量有限,售完即止,各位对深度学习感兴趣的 AI 从业者们千万不可错过!(悄悄告诉你,使用优惠码还有 200元 折扣哦)

优惠码:

1024MOOC64155

1024MOOC58424

购买链接:

http://www.mooc.ai/course/90




====================================分割线================================

本文作者:AI研习社
本文转自雷锋网禁止二次转载, 原文链接
相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
玄学酱
目录
相关文章
阿旭算法与机器学习
|
17天前
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
阿旭算法与机器学习
39 1
阿旭算法与机器学习
|
17天前
|
机器学习/深度学习 算法 安全
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入
阿旭算法与机器学习
70 0
阿旭算法与机器学习
|
17天前
|
机器学习/深度学习 计算机视觉 Python
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(3)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数
阿旭算法与机器学习
14 1
阿旭算法与机器学习
|
17天前
|
机器学习/深度学习 存储 算法
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(2)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数
阿旭算法与机器学习
14 1
编程千纸鹤
|
16天前
|
机器学习/深度学习 自然语言处理 前端开发
深度学习-[数据集+完整代码]基于卷积神经网络的缺陷检测
深度学习-[数据集+完整代码]基于卷积神经网络的缺陷检测
编程千纸鹤
29 0
阿旭算法与机器学习
|
17天前
|
机器学习/深度学习 存储 算法
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
阿旭算法与机器学习
67 0
阿旭算法与机器学习
|
17天前
|
机器学习/深度学习 存储 安全
基于YOLOv8深度学习的行人跌倒检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
基于YOLOv8深度学习的行人跌倒检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
阿旭算法与机器学习
57 0
阿旭算法与机器学习
|
17天前
|
机器学习/深度学习 存储 监控
基于YOLOv8深度学习的无人机视角高精度太阳能电池板检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割
基于YOLOv8深度学习的无人机视角高精度太阳能电池板检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割
阿旭算法与机器学习
51 0
阿旭算法与机器学习
|
17天前
|
机器学习/深度学习 存储 监控
基于YOLOv8深度学习的高压输电线绝缘子缺陷智能检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测
基于YOLOv8深度学习的高压输电线绝缘子缺陷智能检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测
阿旭算法与机器学习
28 0
阿旭算法与机器学习
|
17天前
|
机器学习/深度学习 人工智能 安全
实战 | 基于YOLOv8深度学习的反光衣检测与预警系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、人工智能
实战 | 基于YOLOv8深度学习的反光衣检测与预警系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、人工智能
阿旭算法与机器学习
40 0

雷锋网

热门文章

最新文章

  • 1
    深度学习中的卷积神经网络(CNN)详解
  • 2
    基于深度学习网络的鞋子种类识别matlab仿真
  • 3
    探索深度学习在图像识别领域的前沿技术
  • 4
    Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
  • 5
    基于深度学习的图像识别在自动驾驶车辆中的应用
  • 6
    【AI 初识】讨论深度学习和机器学习之间的区别
  • 7
    深度学习在图像识别中的应用与挑战
  • 8
    Spark在深度学习中的优缺点是什么?
  • 9
    揭秘深度学习在图像识别中的核心技术
  • 10
    探索MATLAB在计算机视觉与深度学习领域的实战应用
  • 1
    智能化视野下的守卫者:基于深度学习的图像识别技术在智能监控领域的革新应用
    29
  • 2
    深度学习在图像识别中的应用及优化策略
    62
  • 3
    基于深度学习的电动自行车头盔佩戴检测系统
    43
  • 4
    深度视野:深度学习技术在智能监控系统中的革新应用
    27
  • 5
    深度学习在医学影像识别中的应用与挑战
    70
  • 6
    探索深度学习在医学影像诊断中的应用与挑战
    28
  • 7
    利用深度学习进行自然语言处理的最新进展
    57
  • 8
    深度学习模型可视化工具——Netron使用介绍
    262
  • 9
    深度学习模型数值稳定性——梯度衰减和梯度爆炸的说明
    33
  • 10
    未来智能时代下的深度学习应用前景与挑战
    33
  • 相关课程

    更多
  • 高校精品课-复旦大学-机器学习与深度学习
  • 深度学习框架TensorFlow入门
  • 深度学习与自动驾驶
  • 深度学习理论与实战(基于TensorFlow实现)
  • 计算机视觉入门与实践
  • 深度学习入门与实践
  • 相关电子书

    更多
  • 深度学习的最新进展
  • 搜狗深度学习技术在广告推荐领域的应用
  • 深度学习在电商搜索和聊天机器人中的应用
  • 相关实验场景

    更多
  • 使用PAI-快速开始,低代码实现大语言模型微调和部署
  • 使用函数计算部署通义千问大模型实现AI对话
  • 使用计算巢AI应用,快速上手实践Stable Diffusion
  • 免费撸A10显卡!在PAI-DSW里用FaceChain训练专属形象照
  • 云原生AI套件:五分钟微调宝可梦风格StableDiffusion
  • AIGC Stable Diffusion文生图Lora模型微调实现虚拟上装
  • 下一篇
    部署LAMP环境(Alibaba Cloud Linux 3)

    PHP网站源码深圳seo网站推广西乡seo网站优化丹竹头网站优化罗湖网站制作设计广州SEO按天收费大鹏建网站罗湖设计网站大浪百搜词包东莞设计网站大芬SEO按天扣费塘坑关键词按天计费罗湖企业网站建设南联网站推广系统布吉设计网站西乡推广网站塘坑企业网站建设大浪网络推广松岗优化荷坳网站seo优化木棉湾网站优化按天收费布吉关键词排名包年推广松岗关键词按天计费大运SEO按天收费平湖企业网站制作大鹏网页设计双龙seo优化观澜seo网站推广荷坳网站排名优化大浪网站建设设计石岩网站优化排名歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化