第1章 PyTorch与深度学习

深度学习的应用

  • 接近人类水平的图像分类
  • 接近人类水平的语音识别
  • 机器翻译
  • 自动驾驶汽车
  • Siri、Google语音和Alexa在最近几年更加准确
  • 日本农民的黄瓜智能分拣
  • 肺癌检测
  • 准确度高于人类的语言翻译
  • 读懂图片中的图像含义

现今深度学习应用中最受欢迎的技术和出现的时间点

技术 年份
神经网络 1943
反向传播 20世纪60年代初期
卷积神经网络 1979
循环神经网络 1980
长短期记忆网络 1997

深度学习过去的叫法

20世纪70年代叫控制论(cybernetics),20世纪80年代称之为联结主义(connectionism),现在称为深度学习或者神经网络

深度学习现在流行起来的原因

  • 硬件可用性
  • 数据和算法
  • 深度学习框架

硬件可用性

图形处理单元(Graphic Processing Unit,GPU)在完成数百万甚至数十亿的参数上的大规模数学运算(如矩阵乘法)时可以搞出几个数量级。
GPU内存,NVIDIA的1080ti大概有11GB的内存,价格在700美元左右
各种云服务,如AWS,Google Cloud,Floyd(这家公司提供转为深度学习优化的GPU机器)

数据和算法

文本、图片、视频和音频数据
在计算机视觉领域,ImageNet竞赛在提供1000种类别中的140万图片的数据集方面发挥了巨大作用

过去比赛中一些成功的算法有VGG、ResNet、Inception、DenseNet,现在这些算法已在行业中得到应用,用于解决各种计算机视觉问题

其他一些流行的数据集:

  • MNIST
  • COCO数据集
  • CIFAR
  • The Street View House Numbers
  • PASCAL VOC
  • Wikipedia dump
  • 20 Newsgroups
  • Penn Treebank
  • Kaggle

各种不同算法的发展:
批规一化、激活函数、跳跃式连接(skip connection)、长短期记忆网络(LSTM)、dropout等

深度学习框架

早期,需要具备C++和CUDA的专业知识来实现深度学习算法
现在,随着深度学习框架的开源,只需具备脚本语言知识(如Python)即可
行业中流行的深度学习框架有:TensorFlow、Caffe2、Keras、Theano、PyTorch、Chainer、DyNet、MXNet和CNTK

PyTorch以及其他大多数深度学习框架,主要用于两个方面:

  • 用GPU加速过的运算替代与NumPy类似的运算;
  • 构建深度神经网络

PyTorch易用简单,不同于其他大多数流行的使用静态计算图的深度学习矿机,PyTorch使用动态计算,因此在构建复杂架构时可以有更高的灵活性。

PyTorch大量使用了Python概念,例如类、结构和条件循环,允许用户以纯面向对象的方式构建深度学习算法。

由于PyTorch最初主要为研究目的而构建,因此不建议用于哪些对延迟要求非常高的生产环境。然而,随着名为Open Neural NetWork Exchange(ONNX)的新项目的出现,这种情况正在发生改变,该项目重点是将在PyTorch上开发的模型部署到适用于生产的Caffe2这样的平台上。该项目得到了Facebook和微软的支持。

【PyTorch深度学习】学习笔记之PyTorch与深度学习的更多相关文章

  1. 深度学习课程笔记(十三)深度强化学习 --- 策略梯度方法(Policy Gradient Methods)

    深度学习课程笔记(十三)深度强化学习 --- 策略梯度方法(Policy Gradient Methods) 2018-07-17 16:50:12 Reference:https://www.you ...

  2. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

  3. Python深度学习读书笔记-1.什么是深度学习

    人工智能 什么是人工智能.机器学习与深度学习(见图1-1)?这三者之间有什么关系?

  4. WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]

    WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...

  5. 强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)

    强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods) 学习笔记: Reinforcement Learning: An Introduction, Richa ...

  6. 强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces)

    强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces) 学习笔记: Reinforcement Learning: An Introduction, Richard S. S ...

  7. 强化学习读书笔记 - 11 - off-policy的近似方法

    强化学习读书笔记 - 11 - off-policy的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton and ...

  8. 强化学习读书笔记 - 10 - on-policy控制的近似方法

    强化学习读书笔记 - 10 - on-policy控制的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton an ...

  9. 强化学习读书笔记 - 09 - on-policy预测的近似方法

    强化学习读书笔记 - 09 - on-policy预测的近似方法 参照 Reinforcement Learning: An Introduction, Richard S. Sutton and A ...

随机推荐

  1. python协程与异步协程

    在前面几个博客中我们一一对应解决了消费者消费的速度跟不上生产者,浪费我们大量的时间去等待的问题,在这里,针对业务逻辑比较耗时间的问题,我们还有除了多进程之外更优的解决方式,那就是协程和异步协程.在引入 ...

  2. 如何下载最新的固件到Pixhawk

    连接Pixhawk至电脑 当Mission Planner 已经安装至你的电脑上,使用micro USB数据线连接pixhawk到您的计算机上. 使用一个USB端口直接在您的计算机上,不要用USB集线 ...

  3. EBS应用重启

    重启系统应用 cd $ADMIN_SCRIPTS_HOME ./adstpall.sh apps/apps ./adstrtal.sh apps/apps 在重启应用时,可能会出现并发管理器未启动的情 ...

  4. vc++ 6.0编译后生成的文件

    程序在编译后,在目标路径下会生成多个文件    Debug文件夹(*.exe,*.ilk,*.obj,*.pch,*.pdb,*.idb,*,pdb),*.cpp,*.dsp,*.ncb,*.plg  ...

  5. Android Broadcast Receive

    Broadcast Receive 广播接收(Broadcast Receive)为android的四大组件之一.主要用于监听广播消息,并做出响应.与应用程序中监听事件相比而言,该监听事件为全局监听. ...

  6. 一些好的IOS blog 不断增加中。。。。

    http://www.swiftkiller.com/?p=371 http://blog.csdn.net/javayujiafeng/article/details/14163319 http:/ ...

  7. Java读取properties配置文件工具类

    1.   PropertyUtils.java package javax.utils; import java.io.InputStream; import java.util.Properties ...

  8. CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第八节

    原文链接 第八节:利用CUDA函数库 Rob Farber 是西北太平洋国家实验室(Pacific Northwest National Laboratory)的高级科研人员.他在多个国家级的实验室进 ...

  9. JavaScript中的confirm的用法

    confirm()方法用于显示一个带有指定消息和ok以及取消按钮的对话框confirm(message,ok,cancel); message:表示在弹出框的对话框中现实的文本信息如果用户点击确定按钮 ...

  10. 初尝微信小程序1-特点

    微信小程序特点:1.不需要下载安装即可使用 2.用户用完即走,不用关心是否安装太多应用 3.应用将无处不在,随时可用 适合开发的小程序类型:1.简单的用完即走的应用 2.低频的应用 3.性能要求不高的 ...