深度学习基础笔记01-PaddlePaddle概述

根据维基百科给出的定义,对深度学习做出如下定义:

深度学习是机器学习的分支,是一种以人工神经网络为架构,对数据进行表征学习的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务。

深度学习在很多机器学习领域都有非常出色的表现,在图像识别、语音识别、自然语言处理、机器人、网络广告投放、医学自动诊断和金融等各大领域均有广泛应用。

一、深度学习工具

【深度学习工具的优势】

  • 易用性:屏蔽底层,用户只需关注模型结构。同时,深度学习工具简化了计算,降低了深度学习入门门槛。
  • 高效性:灵活的一致性,可将代码部署到CPU或GPU上。选择具有分布式性能的深度学习工具可以事半功倍。

【主流的深度学习开源工具】

  • PaddlePaddle是百度提供的国内首个开源深度学习框架,是基于“深度学习编程语言”的新一代深度学习框架,在兼具性能的同时,极大的提升了框架对模型的表达能力。框架本身具有易学、易用、安全、高效四大特性,是最适合中国开发者和企业的深度学习工具。

GitHub项目地址:https://github.com/PaddlePaddle/Paddle

  • TensorFlow是谷歌基于C++开发、发布的第二代机器学习系统。开发目的是用于机器学习和深度神经网络的研究。目前Google的Google App的语音识别、Gmail的自动回复功能、Google Photos的图片搜索等都在使用TensorFlow。但TensorFlow内部概念众多,结构复杂,API繁重上手困难,版本迭代快还有API兼容性问题。

GitHub项目地址:https://github.com/tensorflow/tensorflow

  • Caffe是由神经网络中的表达式、速度及模块化产生的深度学习框架。Caffe是一个基于C++/CUDA架构框架,开发者能利用它自由的组织网络,目前支持卷积神经网络和全连接神经网络(人工神经网络)。在Linux上,C++可以通过命令行来操作接口,运算上支持CPU和GPU直接无缝切换。但官方文档和教程不是很充分,对初学者来说门槛较高。

GitHub项目地址:https://github.com/BVLC/caffe

  • Keras是基于Python开发的极简并高度模块化的神经网络库,在TensorFlow或Theano上都能够运行,是一个高度模块化的神经网络库,支持GPU和CPU运算。Keras侧重于开发快速实验,用可能最少延迟实现从理念到结果的转变,即为做好一项研究的关键。

GitHub项目地址:https://github.com/fchollet/keras

二、PaddlePaddle全景

【PaddlePaddle深度学习平台】

PaddlePaddle(飞浆)-源于产业实践开源深度学习平台,是集深度学习核心框架工具组件服务平台为一体的技术先进、功能完备的开源深度学习平台,已被中国企业广泛使用,深度契合企业实际应用需求,并拥有活跃的开发者社区形态。提供丰富的官方支持模型集合,并推出全类型的高性能部署集成方案供开发者使用。

网址:http://www.paddlepaddle.org

PaddlePaddle前身是2013年百度自主研发的深度学习平台,已知为百度内部工程师使用。

2016年9月1日百度世界大会上,百度首席科学家Andrew Ng(吴恩达)首次宣布将百度深度学习平台对外开放,命名PaddlePaddle。

截止201711月PaddlePaddle同其它框架比,前13个月的活跃度是最高。

PaddlePaddle不仅包含深度学习框架,还提供了一整套紧密关联、灵活组合的完整工具组件服务平台,有利于深度学习技术的应用落地

【PaddlePaddle核心框架-开发】

PaddlePaddle已开源60+经过真实业务场景验证的官方模型涵盖视觉、NLP、推荐等AI核心技术领域,成为官方支持模型最多的深度学习平台。从而可以快速构建强大的应用,满足各种场景需求。

--01 PaddleCV(计算机视觉)

  • 图像分类

根据图像的语义信息对不同类别图像进行区分。

常用模型:AlexNet、VGG、GoogleNet、ResNet等,方便用户使用。

  • 视频识别

为开发者提供解决视频理解、视频剪辑、视频生成等一系列任务。

业界首个视频识别工具集。已开放7个视频分类经典模型,覆盖视频识别方向的主流领先模型。包括:TCN、Non-Local、st-Net、TSM、Attention LSTM、Attention Cluster、NeXtVLAD

--02 PaddleNLP(自然语言处理)-面向工业应用的中文NLP开源工具集

基于PaddlePaddle深度学习框架打造的工业级NLP开源工具集,最懂中文、完善易用、灵活插拔

  • 全面丰富的能力

提供全面丰富的中文处理任务,涵盖了文本分类、序列标注、语义表示、语义匹配等多种NLP任务,可根据业务需求快速选择合适的预训练模型进行使用。

  • 灵活插拔的网络

基于PaddlePaddle深度学习框架构建的基础NLP网络和NLP应用任务的灵活解耦,网络可灵活调整,场景可高效迁移,认真高效易用。

  • 工业级应用效果

拥有当前业内效果最好的中文语义表示模型和基于用户大数据训练的应用任务模型,模型效果调整机制源于产业实践,效果更突出。

-- 03 PaddleRec(推荐系统)

  • 智能推荐在当前的互联网服务中正在发挥越来越大的作用,目前大部分电子商务系统、社交网络,广告推荐,搜索引擎,都不同程度的使用了各种形式的个性化推荐技术,帮助用户快速找到他们想要的信息。
  • PaddleRec提供多种推荐场景下的召回、排序经典算法,如GRU4Rec、DeepCTR、Multiview-Simnet等模型。

除此之外,PaddlePaddle还为开发者们提供了语音识别、强化学习等方面的一些模型库可以满足各种场景需求。

【PaddlePaddle核心框架-训练】

--01 大规模数据分布式训练

  • 首先多机多卡的全面高效支持,提升了速度;
  • 基于八度海量规模的业务场景实践,同时支持稠密参数和稀疏参数场景的超大规模深度学习并行训练,支持千亿规模参数、数百个节点的高效并行训练;

--02 工业级数据处理

  • 分布式文件系统IO支持;
  • 高性能多生产者-多消费者设计。

【PaddlePaddle核心框架-预测】

--01 端到端的全部流程部署方案

  • 高速的推理引擎

基于多硬件的支持,PaddlePaddle提供性能全面领先的底层加速库和推理引擎。

全系发布分Paddle Serving支持服务器端的快速部署。

  • 模型压缩裤

为了部署在更多的硬件上往往需要做模型压缩,模型体积压缩库PaddleSlim针对体积已经很小的MobileNet面模型,仍能在模型效果不损失的前提下实现70%以上的体积压缩。

【丰富的工具组件】

  • AutoDL Design

开源的网络结构自动化设计技术。AutoDL是一种高效的自动搜索构建最佳网络结构的方法,通过增强学习在不断训练过程中得到定制化高质量的模型。

使用文档:https://github.com/PaddlePaddle/AutoDL/tree/master/AutoDL%20Design

AutoDL Design设计的图像分类网络在CIFAR10数据集上准确率达到98%,效果完全超过人类专家,居于业内领先位置。通过不断的迭代搜索,使得自动化构建模型的效果在不断增强。

  • PaddleHub

简单易用的预训练模型管理框架,通过命令接口,边界获取PaddlePaddle生态下的预训练模型,无需编写代码,一键使用预训练模型进行预测。

使用文档:https://github.com/PaddlePaddle/PaddleHub

想要了解更多PaddleHub已经发布的模型,请使用hub search命令查看所有已发布的模型,本节只做概述了解一下。

  • PARL:一个高性能、灵活的强化学习框架

具有灵活性和可扩展性,支持可定制的并行扩展,覆盖DQN、DDPG、PPO、A2C等主流强化学习的算法。

使用文档:https://github.com/paddlepaddle/parl

可复现性保证。提供了高质量的主流强化学习算法实现,严格地复现了论文对应的指标。

大规模并行支持。最高可支持上万个CPU的同时并发计算,并且支持多GPU强化学习模型的训练。

可复用性强。用户无需自己重现实现算法没通过复用框架提供的算法可以轻松地把经典强化学习算法应用到具体场景中。

良好扩展性。当用户想调研新的算法,可以通过继承PARL提供的基类快速实现自己的强化学习算法。

  • VisualDL

VisualDL是一款开源的、支持多个深度学习框架的数据可视化工具库;可以将神经网络的各种训练结果以及网络的结构以可视化的形式呈现。

使用文档:http://visualdl.paddlepaddle.org/

VisualDL提供scalar、参数分布、模型结构、图像可视化等功能。

  • X2Paddle

为了帮助用户快速从其它框架迁移,PaddlePaddle开源了模型转换工具X2Paddle

tensorflow2fluid:可将TensorFlow、Caffe的模型转换为Fluid可加载的格式。

caffe2fluid:可将TensorFlow、Caffe的模型转换为Fluid可加载的格式。

onnx2fluid:还支持ONNX格式的模型转换,比如Pytorch、MXNet、CNTK等。

提供了相应API文档,可帮助用户通过现有框架的使用经验快速上手PaddlePaddle的使用。

Caffe2fluid:https://github.com/PaddlePaddle/X2Paddle/tree/master/caffe2fluid/doc

Tensorflow2fluid:https://github.com/PaddlePaddle/X2Paddle/tree/master/tensorflow2fluid/doc

序号 TensorFlow接口 PaddlePaddle接口 备注
1 tf.abs fluid.layers.abs 功能一致
2 tf.add fluid.layers.elementwise_add 功能一致

【专业的服务平台】

  • EasyDL

致力于为零算法基础的企业用户和开发者提供高精度的AI模型定制服务

官网:http://ai.baidu.com/easydl/

  • AI Studio:一站式深度学习开发平台

集开放数据、开源算法、免费算力三位一体,为开发者提供高效学习和开发环境、高价值奖金竞赛项目,支撑高效老师轻松实现AI教学,并助力企业加速落地AI业务场景。

官网:https://aistudio.baidu.com/

三、工业应用

目前PaddlePaddle已在百度30项主要产品和服务之中发挥巨大的作用。如外卖预估出餐时间,精准推荐用户所需信息,字符识别(OCR)、机器翻译、病毒和垃圾信息监测、自动驾驶、海量图像识别分类。

另外通过PaddlePaddle可以实现一些有趣的项目:如高尔夫球场的遥感监测,深度学习质检一体机,更低地块识别,机器听诊大师。

目前,PaddlePaddle已经在国内得到了广泛的工业应用。

猜你喜欢

转载自blog.csdn.net/MARS_098/article/details/104153888