13.深度学习平台


文档摘要

深度学习平台概况 这一章为大家介绍五种非常有用的深度学习框架,并介绍他们各自的优缺点。 很多人不喜欢造轮子的过程,喜欢实用主义,将轮子拼接起来 但是当需要为现实世界的数据集构建深度学习模型时,这还是一个不错的主意吗?如果你需要几天或几周的时间来建立起模型,这是完全不可能的。 值得庆幸的是,我们现在已经有了易于使用的开源深度学习框架,旨在简化复杂和大规模深度学习模型的实现。使用这些神奇的框架,我们可以实现诸如卷积神经网络这样复杂的模型。

深度学习平台概况

这一章为大家介绍五种非常有用的深度学习框架,并介绍他们各自的优缺点。

很多人不喜欢造轮子的过程,喜欢实用主义,将轮子拼接起来

但是当需要为现实世界的数据集构建深度学习模型时,这还是一个不错的主意吗?如果你需要几天或几周的时间来建立起模型,这是完全不可能的。

值得庆幸的是,我们现在已经有了易于使用的开源深度学习框架,旨在简化复杂和大规模深度学习模型的实现。使用这些神奇的框架,我们可以实现诸如卷积神经网络这样复杂的模型。

A deep learning framework is an interface, library or a tool which allows us to build deep learning models more easily and quickly , without getting into the details of underlying algorithms . They provide a clear and concise way for defining models using a collection of pre-built and optimized components.

什么是深度学习框架:深度学习框架是一种界面、库或工具,它使我们在无需深入了解底层算法的细节的情况下,能够更容易、更快速地构建深度学习模型。深度学习框架利用预先构建和优化好的组件集合定义模型,为模型的实现提供了一种清晰而简洁的方法。

利用恰当的框架来快速构建模型,而无需编写数百行代码,一个良好的深度学习框架具备以下关键特征:

  • 优化的性能
  • 易于理解和编码
  • 良好的社区支持
  • 并行化的进程,以减少计算
  • 自动计算梯度

这五点也是我用来挑选顶级深度学习框架的标准。

深度学习框架对照

1

2018年GitHub统计

2

2019年GitHub统计

3

Tensorflow

TensorFlow是由谷歌大脑团队的研究人员和工程师开发的,它是深度学习领域中最常用的软件库(尽管其他软件正在迅速崛起)。

The two things I really like about TensorFlow - it's completely open source and has excellent community support. TensorFlow has pre-written codes for most of the complex deep learning models you'll come across, such as RNN and CNN.

TensorFlow有两大特点:它完全是开源的,并且有出色的社区支持。TensorFlow为大多数复杂的深度学习模型预先编写好了代码,比如循环神经网络和卷积神经网络。

TensorFlow如此流行的最大原因之一是支持多种语言来创建深度学习模型,比如Python、C和R,并且有不错的文档和指南。

TensorFlow有许多组件,其中最为突出的是:

  • **Tensorboard:**帮助使用数据流图进行有效的数据可视化
  • **TensorFlow:**用于快速部署新算法/试验

TensorFlow的灵活架构使我们能够在一个或多个CPU(以及GPU)上部署深度学习模型。下面是一些典型的TensorFlow用例:

  • 基于文本的应用:语言检测、文本摘要
  • 图像识别:图像字幕、人脸识别、目标检测
  • 声音识别
  • 时间序列分析
  • 视频分析
  • ...

PyTorch

在我所研究过的框架中,PyTorch最富灵活性。

PyTorch是Torch深度学习框架的一个接口,可用于建立深度神经网络和执行张量计算。Torch是一个基于Lua的框架,而PyTorch则运行在Python上。

PyTorch是一个Python包,它提供张量计算。张量是多维数组,就像numpy的ndarray一样,它也可以在GPU上运行。PyTorch使用动态计算图,PyTorch的Autograd软件包从张量生成计算图,并自动计算梯度。与特定功能的预定义的图表不同,PyTorch提供了一个框架,用于在运行时构建计算图形,甚至在运行时也可以对这些图形进行更改。当不知道创建神经网络需要多少内存的情况下,这个功能便很有价值。

可以使用PyTorch处理各种来自深度学习的挑战,包括:

  • 影像(检测、分类等)
  • 文本(NLP)
  • 增强学习

Keras

如果你习惯使用python,那么可以立即上手到Keras。这是一个非常适合你的深度学习之旅的完美的框架。

Keras用Python编写,可以在TensorFlow(以及CNTK和Theano)之上运行。TensorFlow的接口具备挑战性,因为它是一个低级库,新用户可能会很难理解某些实现。而Keras是一个高层的API,它为快速实验而开发。因此,如果希望获得快速结果,Keras会自动处理核心任务并生成输出。Keras支持卷积神经网络和递归神经网络,可以在CPU和GPU上无缝运行。

深度学习的初学者经常会抱怨:无法正确理解复杂的模型。如果你是这样的用户,Keras便是你的正确选择!它的目标是最小化用户操作,并使其模型真正容易理解。

可以将Keras中的模型大致分为两类:

1. 序列化
模型的层是按顺序定义的。这意味着当我们训练深度学习模型时,这些层次是按顺序实现的。下面是一个顺序模型的示例:
from keras.models import Sequential from keras.layers import Dense model = Sequential() # we can add multiple layers to the model using .add() model.add(Dense(units=64, activation='relu', input_dim=100)) model.add(Dense(units=10, activation='softmax'))
**2. Keras 函数API**
用于定义复杂模型,例如多输出模型或具有共享层的模型。请查看下面的代码来理解这一点:
from keras.layers import Input, Dense from keras.models import Model inputs = Input(shape=(100,)) # specify the input shape x = Dense(64, activation='relu')(inputs) predictions = Dense(10, activation='softmax')(x) model = Model(inputs=inputs, outputs=predictions)

PaddlePaddle

PaddlePaddle是百度提供的开源深度学习框架,致力于为开发者和企业提供最好的深度学习研发体验,框架本身具有易学、易用、安全、高效四大特性,是最适合中国开发者和企业的深度学习工具。

4

功能特点

•教程文档友好,提供jupyter文档

开源

•开源,代码在github上公开
• 社区活跃,合作伙伴支持,有很多的贡献者

速度快、方便

• 底层C++编写,运行速度快,占用内存少
• 接口Python,使用方便,开发便捷

分布式系统

• 底层硬件同时支持CPU和GPU
• 分布式系统,支持单机运行和云上运行

部署方便

• 支持docker部署和原生包部署
• 支持多操作系统windows、 macOS、 Linux

优势

提供搭建私有云的全套解决方案

  • 帮助用户保护数据
  • 充分支持分布式系统
  • 模型并行和数据并行

灵活易用且性能高

  • 支持多种机器学习和优化算法,可定 制
  • 全面支持多机、多GPU环境,优化的 通信实现使高吞吐与高性能成为可能

MindSpore

教育部**-**华为“智能基座” 产教融合协同育人基地

5

MindSpore(AI框架):全场景AI框架(类似TensorFlow、Pytorch)

  • https://www.mindspore.cn/
  • MindSpore提供了Python编程范式
  • MindSpore提供了动态图和静态图统一的编码方式
  • 能够用串行算法代码,自动实现分布式并行训练
  • 具备训练过程静态执行和动态调试能力,开发者通过变更一行代码 即可切换模式,快速在线定位问题
  • 最佳匹配昇腾处理器,最大程度地发挥硬件能力,帮助开发者缩短 训练时间,提升推理性能
  • 支持云、边缘和手机上的快速部署,实现更好的资源利用和隐私保 护

作者与出处
原作者: Datawhale
来源:Datawhale
许可证:CC BY-NC-SA 4.0
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: Datawhale 转发
评论区 (0)
U