1+X证书 智能计算平台应用开发【中级】第2章 人工智能与平台搭建(2.3 常用的人工智能应用框架)V1.0
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
是
Caffe
BVLC
C++ C++ Python MATLAB 是
否
MindSpore
Huawei C/C++ Python 是 是
第4页
TensorFlow
TensorFlow是Google基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本 身的运行原理。
TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
第2页
常用人工智能应用框架
常用框架的对比
• 任何的框架都不一定是绝对完美,不同的框架都有自身的独特之处。在此对当前常用框架从 框架的维护机构、框架的核心语言和所支持的接口语言等方面进行对比。
• TensorFlow和PyTorch框架相比较相比好一些,而MXNet、Caffe和MindSpore框架也同样十分优 秀。不同的框架适用的领域也不完全一致,所以如何选择合适的框架也是一个需要探索的过 程。总体而言,这些常用的人工智能框架对开发者学习和使用都提供了一定的帮助。
文档和接 口混乱
缺点
使用繁琐
调试困难
较难理解
PyTorch
PyTorch是Facebook开发的用于训练神经网络的Python包,也是Facebook倾力打造的深度学习框 架。PyTorch提供了一种类似NumPy的抽象方法来表征张量(或多维数组),可以利用GPU来加 速训练。
PyTorch通过一种称为Reverse-mode auto-differentiation(反向模式自动微分)的技术,可以零 延迟或零成本地任意改变网络的行为。
PyTorch
如今,PyTorch被广泛应用于研究领域。
PyTorch研究领域
• 自然语言处理 • 图像处理 • ……
第16页
PyTorch
PyTorch作为一个端到端的机器学习框架,它有以下几种主要的功能。
Torch脚本
分布式培训
移动(实验性)
工具和库
本机ONNX支持
C++前端
云合作伙伴
第17页
PyTorch
Torch脚本
• PyTorch可以借助Torch脚本,在急切模式下提供易用性和灵活性,同时 无缝过渡到图形模式,以实现C++运行时环境中的速度、优化和功能。
分布式培训
• PyTorch通过Python和C++可以访问的集体操作和对等通信的异步执行的 本机支持,优化研究和生产中的性能。
简洁
• PyTorch的设计提倡少的封装,避免重复。此外,PyTorch的设计逻辑清晰,遵循 Tensor、Variable(autograd)和m Module这3个由低到高的层次,分别代表高维 数组(张量)、自动求导(变量)和神经网络(层/模块),而且这3个抽象层 次相互作用,可以同时修改和操作。
Facebook正式发布PyTorch 1.0稳定版。
PyTorch 1.0版本不仅将即时模式和图执行模式融合在一起,还重构和 统一了Caffe2和PyTorch 0.4框架的代码库,删除了重复的组件并共享 上层抽象,得到了一个统一的框架,支持了高效的图模式执行、移 动部署和广泛的供应商集成等。
第15页
第27页
MXNet
2018年5月
MXNet正式推出了专门为计算机视觉任务打造的深度学习工具库 GluonCV,该工具库提供了包括图像分类、目标检测、图像分割等领 域的前沿算法复现模型和详细的复现代码,同时还提供了常用的公 开数据集、模型的调用接口,既方便学术界研究创新,也能加快工 业界落地算法。
第2章 人工智能与平台搭建
第0页
目录
1. 人工智能简介 2. 集成开发环境 3. 常用人工智能应用框架
第1页
常用人工智能应用框架
所谓工欲善其事,必先利其器。人工智能应用框架的出现,降低了人工智能入门的门 槛,开发者不需要进行底层的编码,可以在高层进行配置。
人工智能应 用框架
• TensorFlow • PyTorch • Mxnet • Caffe • MindSpore • ……
• Airbnb使用TensorFlow进行大规模的图像 分类和对象检测,从而帮助改善房客体验。
• …… 国内外其它公司
TensorFlow
TensorFlow有着强大的功能
在TensorFlow 1.13.1版本中不仅将TensorFlow Lite(用于移动和嵌入式设备以及Nvidia 集体通信库(NCCL))移到核心库。 TensorFlow 1.13.1版本中新添加了tf.signal.dct和tf.signal中的DCT-1和IDCT-1等功能。 TensorFlow 1.13.1版本中利用了idct、估计器中梯度增强树的分位数损失和substr中的 unit属性,使用户可以获得包含Unicode字符的字符串的子字符串。
TensorFlow
灵活可扩展
TensorFlow不是一个严格的神经网络库,它具有高度的灵活性。用户不仅可以借助Eager Execution进行快速迭代和直观的调试,还可以使用Distribution Strategy API在不同的硬件 配置上进行分布式训练,而无需更改模型定义。
运算性能强
由于TensorFlow很好地支持了线程、队列、异步操作等,所以计算潜能得到了更有效的 发挥。
第14页
PyTorc h
采用动态计 算图的框架
Theano
CNTK
Caffe
Tensor Flow
采用静态计 算图的框架
PyTorch
PyTorch是基于Torch库开发的人工智能框架。
2017年1月初 2018年12月
Facebook人工智能研究院(FAIR)在GitHub上首次推出了PyTorch,迅 速占领了GitHub热度榜榜首。 PyTorch不断地发展,在PyTorch 0.4版本中合并了Varable和Tensor,并 增加了对Windows的支持。
第8页
TensorFlow
TensorFlow作为人工智能常用的应用框 架之一,无论对于初学者,还是对于在 深度学习领域具备一定经验的工作者, TensorFlow都极具吸引力。
第9页
TensorFlow主要特点
• 灵活可扩展 • 运算性能强 • 支持多语言 • 支持多平台 • 提供强大的研究实验
第23页
PyTorch
拥有活跃的社区
• PyTorch拥有完整的技术文档和开发人员亲自维护的论坛,供用户交流和学习。 • 同时,FAIR的开发支持,使PyTorch可以获得及时的更新与维护,保证了PyTorch
用户的体验。
第24页
PyTorch
PyTorch不是一个绝对完美的框架,除自身的特点外,也存在一定的缺点。
移动(实验性)
• PyTorch支持从Python到在iOS和Android上部署的端到端工作流。它扩展 了PyTorch API,以涵盖将ML集成到移动应用程序中所需的常见预处理和 集成任务。
第18页
PyTorch
工具和库
• PyTorch活跃的研究人员和开发人员社区建立了丰富的工具和库生态系统, 用于扩展PyTorch和支持从计算机视觉到强化学习领域的开发。
• PyTorch在主要的云平台上得到了很好的支持,包括通过预构建的图像进行无 摩擦的开发和扩展、在GPU上进行大规模培训和在生产规模环境中运行模型 等。
第19页
PyTorch
PyTorch 作 为 一 个 被 广 泛使用的深度学习框架, 有以下特点。
简洁
拥有活跃 的社区
特点
易用
第20页
速度快
PyTorch
Tensor(张量) 意味着N维数组
Flow(流)意 味着基于数据 流图的计算
TensorFlow为张量从流 图的一端流动到另一端
计算过程
第5页
TensorFlow
TensorFlow从2015年在GitHub上开源以来,不断地迭代更新。同时,TensorFlow出色的版 本管理、细致的官方文档以及活跃的社区也在不断促进TensorFlow的发展。
缺点
在PyTorch进行可视化展示需要第三方的支持 生产部署需要API服务器的支持
第25页
MXNet
MXNet简介
• MXNet是DMLC(Distributed Machine Learning Community)开发的一款开源的、轻量级、可移 植、灵活的深度学习库。
• MXNet的前身是cxxnet。
• TensorFlow 0.8版本实现分布式计算。 • TensorFlow 1.0版本提高框架的速度和灵活性。 • TensorFlow 2.0版本专注于易用性和简单性,实现了不断的发展和进步。
第6页
TensorFlow
TensorFlow的运用场景广泛,最常用的是深度学习。
• Google搜索 • Google Gmail • Google翻译
TensorFlow还支持强大的附加库和模型生态系统以供用户开展实验,包括Ragged Tensors、 TensorFlow Probability、Tensor2Tensor和BERT。
第12页
TensorFlow
TensorFlow虽然有着很多的特 点,但是它也有一些缺点。
第13页
不利于工 具化
第3页
常用人工智能应用框架
常用框架的对比。
特性 TensorFlow
PyTorch
维护机构 Google
Facebook
核心语言
C++ Python
C++ Python
wenku.baidu.com
接口语言
C++ Python
C++ Python
是否开源 是
是
是否支持 分布式
是
是
MXNet
DMLC
C++ C++ Python Julia … 是
第26页
MXNet
2015年年底
cxxnet正式迁移至MXNet,并在2016年年底成为Amazon官方的深度学 习框架。 MXNet采用的是命令式编程和符号式编程混合的方式,具有省显存和 运行速度快等特点,训练效率非常高。
2017年下半 年
推出的Gluon接口使得MXNet在命令式编程上更进一步,网络结构的 构建更加灵活,同时混合编程的方式也使得Gluon接口兼顾了高效和 灵活。
• 此外,PyTorch的源码相对于TensorFlow减少了数倍,使得PyTorch的源码阅读较 为方便。
第21页
PyTorch
易用
• PyTorch致力于追求用户的使用体验,将接口设计得十分易用,符合人的思维。 • 同时,PyTorch很难得地保留了灵活性,使用者可以利用PyTorch自由地实现自己
此外,TensorFlow还可以将硬件的计算潜能全部发挥出来,可充分利用多CPU和多GPU, 让TensorFlow的运算性能得到进一步的提升。
第10页
TensorFlow
支持多语言 TensorFlow拥有一个C++使用界面和一个Python使用界面。用户可以直接写Python/C++程
序,也可以用交互式的iPython界面将用户的笔记、代码、可视化等有条理地归置好。 此外,TensorFlow还支持用户创造自己喜欢的语言界面,如Go、Java、Lua、JavaScript、
R等。
第11页
TensorFlow
支持多平台 TensorFlow作为一个跨平台的人工智能学习系统,可以在Windows、Linux、Android、iOS、
Raspberry Pi等系统平台上执行。
提供强大的研究实验
TensorFlow中可以利用Keras Functional API和Model Subclassing API等功能,实现快速创建 模型,并控制模型的速度和性能。
的算法。 • 此外,PyTorch将文档整理得简洁又精髓,为用户提供了一定得帮助。
第22页
PyTorch
速度快
• PyTorch在追求简洁易用的同时,在模型的速度表现上也极为出色,相比 TensorFlow等框架,很多模型在PyTorch上的实现可能会更快。
• 这一点也使得学术界有大量PyTorch的忠实用户,因为使用PyTorch既可以快速实 现用户的想法,又能够保证优秀的速度性能。
本机ONNX支持
• PyTorch支持以标准ONNX(开放式神经网络交换)格式导出模型、以直 接访问与ONNX兼容的平台和可视化工具等功能。
C++前端 云合作伙伴
• PyTorch提供了纯C++接口,并遵循已建立的Python前端的设计和体系结 构,旨在实现高性能、低延迟和裸机C++应用程序的研究。
• Google地图 • Google YouTube • AlphaGo • AlphaGo Zero • ……
Google
第7页
• 中国移动使用TensorFlow打造了一种深度 学习系统,实现了自动预测切换时间范围、 验证操作日志和检测网络是否存在异常的 功能,为世界上规模最大的迁移项目提供 支持。
Caffe
BVLC
C++ C++ Python MATLAB 是
否
MindSpore
Huawei C/C++ Python 是 是
第4页
TensorFlow
TensorFlow是Google基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本 身的运行原理。
TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
第2页
常用人工智能应用框架
常用框架的对比
• 任何的框架都不一定是绝对完美,不同的框架都有自身的独特之处。在此对当前常用框架从 框架的维护机构、框架的核心语言和所支持的接口语言等方面进行对比。
• TensorFlow和PyTorch框架相比较相比好一些,而MXNet、Caffe和MindSpore框架也同样十分优 秀。不同的框架适用的领域也不完全一致,所以如何选择合适的框架也是一个需要探索的过 程。总体而言,这些常用的人工智能框架对开发者学习和使用都提供了一定的帮助。
文档和接 口混乱
缺点
使用繁琐
调试困难
较难理解
PyTorch
PyTorch是Facebook开发的用于训练神经网络的Python包,也是Facebook倾力打造的深度学习框 架。PyTorch提供了一种类似NumPy的抽象方法来表征张量(或多维数组),可以利用GPU来加 速训练。
PyTorch通过一种称为Reverse-mode auto-differentiation(反向模式自动微分)的技术,可以零 延迟或零成本地任意改变网络的行为。
PyTorch
如今,PyTorch被广泛应用于研究领域。
PyTorch研究领域
• 自然语言处理 • 图像处理 • ……
第16页
PyTorch
PyTorch作为一个端到端的机器学习框架,它有以下几种主要的功能。
Torch脚本
分布式培训
移动(实验性)
工具和库
本机ONNX支持
C++前端
云合作伙伴
第17页
PyTorch
Torch脚本
• PyTorch可以借助Torch脚本,在急切模式下提供易用性和灵活性,同时 无缝过渡到图形模式,以实现C++运行时环境中的速度、优化和功能。
分布式培训
• PyTorch通过Python和C++可以访问的集体操作和对等通信的异步执行的 本机支持,优化研究和生产中的性能。
简洁
• PyTorch的设计提倡少的封装,避免重复。此外,PyTorch的设计逻辑清晰,遵循 Tensor、Variable(autograd)和m Module这3个由低到高的层次,分别代表高维 数组(张量)、自动求导(变量)和神经网络(层/模块),而且这3个抽象层 次相互作用,可以同时修改和操作。
Facebook正式发布PyTorch 1.0稳定版。
PyTorch 1.0版本不仅将即时模式和图执行模式融合在一起,还重构和 统一了Caffe2和PyTorch 0.4框架的代码库,删除了重复的组件并共享 上层抽象,得到了一个统一的框架,支持了高效的图模式执行、移 动部署和广泛的供应商集成等。
第15页
第27页
MXNet
2018年5月
MXNet正式推出了专门为计算机视觉任务打造的深度学习工具库 GluonCV,该工具库提供了包括图像分类、目标检测、图像分割等领 域的前沿算法复现模型和详细的复现代码,同时还提供了常用的公 开数据集、模型的调用接口,既方便学术界研究创新,也能加快工 业界落地算法。
第2章 人工智能与平台搭建
第0页
目录
1. 人工智能简介 2. 集成开发环境 3. 常用人工智能应用框架
第1页
常用人工智能应用框架
所谓工欲善其事,必先利其器。人工智能应用框架的出现,降低了人工智能入门的门 槛,开发者不需要进行底层的编码,可以在高层进行配置。
人工智能应 用框架
• TensorFlow • PyTorch • Mxnet • Caffe • MindSpore • ……
• Airbnb使用TensorFlow进行大规模的图像 分类和对象检测,从而帮助改善房客体验。
• …… 国内外其它公司
TensorFlow
TensorFlow有着强大的功能
在TensorFlow 1.13.1版本中不仅将TensorFlow Lite(用于移动和嵌入式设备以及Nvidia 集体通信库(NCCL))移到核心库。 TensorFlow 1.13.1版本中新添加了tf.signal.dct和tf.signal中的DCT-1和IDCT-1等功能。 TensorFlow 1.13.1版本中利用了idct、估计器中梯度增强树的分位数损失和substr中的 unit属性,使用户可以获得包含Unicode字符的字符串的子字符串。
TensorFlow
灵活可扩展
TensorFlow不是一个严格的神经网络库,它具有高度的灵活性。用户不仅可以借助Eager Execution进行快速迭代和直观的调试,还可以使用Distribution Strategy API在不同的硬件 配置上进行分布式训练,而无需更改模型定义。
运算性能强
由于TensorFlow很好地支持了线程、队列、异步操作等,所以计算潜能得到了更有效的 发挥。
第14页
PyTorc h
采用动态计 算图的框架
Theano
CNTK
Caffe
Tensor Flow
采用静态计 算图的框架
PyTorch
PyTorch是基于Torch库开发的人工智能框架。
2017年1月初 2018年12月
Facebook人工智能研究院(FAIR)在GitHub上首次推出了PyTorch,迅 速占领了GitHub热度榜榜首。 PyTorch不断地发展,在PyTorch 0.4版本中合并了Varable和Tensor,并 增加了对Windows的支持。
第8页
TensorFlow
TensorFlow作为人工智能常用的应用框 架之一,无论对于初学者,还是对于在 深度学习领域具备一定经验的工作者, TensorFlow都极具吸引力。
第9页
TensorFlow主要特点
• 灵活可扩展 • 运算性能强 • 支持多语言 • 支持多平台 • 提供强大的研究实验
第23页
PyTorch
拥有活跃的社区
• PyTorch拥有完整的技术文档和开发人员亲自维护的论坛,供用户交流和学习。 • 同时,FAIR的开发支持,使PyTorch可以获得及时的更新与维护,保证了PyTorch
用户的体验。
第24页
PyTorch
PyTorch不是一个绝对完美的框架,除自身的特点外,也存在一定的缺点。
移动(实验性)
• PyTorch支持从Python到在iOS和Android上部署的端到端工作流。它扩展 了PyTorch API,以涵盖将ML集成到移动应用程序中所需的常见预处理和 集成任务。
第18页
PyTorch
工具和库
• PyTorch活跃的研究人员和开发人员社区建立了丰富的工具和库生态系统, 用于扩展PyTorch和支持从计算机视觉到强化学习领域的开发。
• PyTorch在主要的云平台上得到了很好的支持,包括通过预构建的图像进行无 摩擦的开发和扩展、在GPU上进行大规模培训和在生产规模环境中运行模型 等。
第19页
PyTorch
PyTorch 作 为 一 个 被 广 泛使用的深度学习框架, 有以下特点。
简洁
拥有活跃 的社区
特点
易用
第20页
速度快
PyTorch
Tensor(张量) 意味着N维数组
Flow(流)意 味着基于数据 流图的计算
TensorFlow为张量从流 图的一端流动到另一端
计算过程
第5页
TensorFlow
TensorFlow从2015年在GitHub上开源以来,不断地迭代更新。同时,TensorFlow出色的版 本管理、细致的官方文档以及活跃的社区也在不断促进TensorFlow的发展。
缺点
在PyTorch进行可视化展示需要第三方的支持 生产部署需要API服务器的支持
第25页
MXNet
MXNet简介
• MXNet是DMLC(Distributed Machine Learning Community)开发的一款开源的、轻量级、可移 植、灵活的深度学习库。
• MXNet的前身是cxxnet。
• TensorFlow 0.8版本实现分布式计算。 • TensorFlow 1.0版本提高框架的速度和灵活性。 • TensorFlow 2.0版本专注于易用性和简单性,实现了不断的发展和进步。
第6页
TensorFlow
TensorFlow的运用场景广泛,最常用的是深度学习。
• Google搜索 • Google Gmail • Google翻译
TensorFlow还支持强大的附加库和模型生态系统以供用户开展实验,包括Ragged Tensors、 TensorFlow Probability、Tensor2Tensor和BERT。
第12页
TensorFlow
TensorFlow虽然有着很多的特 点,但是它也有一些缺点。
第13页
不利于工 具化
第3页
常用人工智能应用框架
常用框架的对比。
特性 TensorFlow
PyTorch
维护机构 Google
核心语言
C++ Python
C++ Python
wenku.baidu.com
接口语言
C++ Python
C++ Python
是否开源 是
是
是否支持 分布式
是
是
MXNet
DMLC
C++ C++ Python Julia … 是
第26页
MXNet
2015年年底
cxxnet正式迁移至MXNet,并在2016年年底成为Amazon官方的深度学 习框架。 MXNet采用的是命令式编程和符号式编程混合的方式,具有省显存和 运行速度快等特点,训练效率非常高。
2017年下半 年
推出的Gluon接口使得MXNet在命令式编程上更进一步,网络结构的 构建更加灵活,同时混合编程的方式也使得Gluon接口兼顾了高效和 灵活。
• 此外,PyTorch的源码相对于TensorFlow减少了数倍,使得PyTorch的源码阅读较 为方便。
第21页
PyTorch
易用
• PyTorch致力于追求用户的使用体验,将接口设计得十分易用,符合人的思维。 • 同时,PyTorch很难得地保留了灵活性,使用者可以利用PyTorch自由地实现自己
此外,TensorFlow还可以将硬件的计算潜能全部发挥出来,可充分利用多CPU和多GPU, 让TensorFlow的运算性能得到进一步的提升。
第10页
TensorFlow
支持多语言 TensorFlow拥有一个C++使用界面和一个Python使用界面。用户可以直接写Python/C++程
序,也可以用交互式的iPython界面将用户的笔记、代码、可视化等有条理地归置好。 此外,TensorFlow还支持用户创造自己喜欢的语言界面,如Go、Java、Lua、JavaScript、
R等。
第11页
TensorFlow
支持多平台 TensorFlow作为一个跨平台的人工智能学习系统,可以在Windows、Linux、Android、iOS、
Raspberry Pi等系统平台上执行。
提供强大的研究实验
TensorFlow中可以利用Keras Functional API和Model Subclassing API等功能,实现快速创建 模型,并控制模型的速度和性能。
的算法。 • 此外,PyTorch将文档整理得简洁又精髓,为用户提供了一定得帮助。
第22页
PyTorch
速度快
• PyTorch在追求简洁易用的同时,在模型的速度表现上也极为出色,相比 TensorFlow等框架,很多模型在PyTorch上的实现可能会更快。
• 这一点也使得学术界有大量PyTorch的忠实用户,因为使用PyTorch既可以快速实 现用户的想法,又能够保证优秀的速度性能。
本机ONNX支持
• PyTorch支持以标准ONNX(开放式神经网络交换)格式导出模型、以直 接访问与ONNX兼容的平台和可视化工具等功能。
C++前端 云合作伙伴
• PyTorch提供了纯C++接口,并遵循已建立的Python前端的设计和体系结 构,旨在实现高性能、低延迟和裸机C++应用程序的研究。
• Google地图 • Google YouTube • AlphaGo • AlphaGo Zero • ……
第7页
• 中国移动使用TensorFlow打造了一种深度 学习系统,实现了自动预测切换时间范围、 验证操作日志和检测网络是否存在异常的 功能,为世界上规模最大的迁移项目提供 支持。