摘要

本博文将最后的讲解和学习有关于的Paddle的核心框架的分享。并且有关于的Paddle的学习就暂时告一段落。后期本人将更多的在与深度学习的原理和利用Paddle开发自己的深度学习模型作为分享。飞桨开源框架(PaddlePaddle)是一个易用、高效、灵活、可扩展的深度学习框架。你可参考飞桨框架的 Github 了解详情,也可阅读 版本说明 了解2.0版本的特性。使用教程分为如下的模块:

  • 整体介绍 : 飞桨框架2.0新特性的介绍与飞桨框架2.0升级指南的说明。

  • 模型开发 : 飞桨框架2.0模型开发全流程说明。

  • 模型可视化 : 介绍如何用VisualDL实现飞桨框架模型的可视化。

  • 动态图转静态图 : 介绍飞桨框架动态图转静态图的方法。

  • 预测部署 : 介绍如何使用训练好的模型进行预测。

  • 分布式训练 : 介绍如何使用分布式进行训练。

  • 昆仑XPU芯片运行飞桨 : 介绍如何在昆仑XPU芯片环境上安装和使用飞桨。

  • 自定义算子 : 介绍飞桨框架自定义算子的方法。

  • 参与开发 : 介绍如何参与飞桨框架的开发。

  • 其他说明 : 飞桨框架的其他说明文档。

一、模型开发

当完成了快速上手的任务后,下面这些模块会阐述如何用飞桨框架2.0,实现深度学习过程中的每一步。具体包括:

  • 数据集定义与加载 : 飞桨框架数据加载的方式,主要为paddle.io.Dataset + paddle.io.DataLoader,以及飞桨内置数据集的介绍。

  • 数据预处理 : 飞桨框架数据预处理的方法,主要是paddle.vision.transform.*

  • 模型组网 : 飞桨框架组网API的介绍,主要是paddle.nn.*,然后是飞桨框架组网方式的介绍,即 Sequential 的组网与 SubClass 的组网。

  • 训练与预测 : 飞桨框架训练与预测的方法,有两种方式,一种是使用高层APIpaddle.Model封装模型,然后调用model.fit()、model.evaluate()、model.predict()完成模型的训练与预测;另一种是用基础API完成模型的训练与预测,也就是对高层API的拆解。

  • 资源配置 : 飞桨框架在单机单卡、单机多卡的场景下完成模型的训练与预测。

  • 自定义指标 : 飞桨框架自定义指标的方法,主要包含自定义Loss、自定义Metric与自定义Callback。

  • 模型的加载与保存 : 飞桨框架模型的加载与保存体系介绍。

  • 模型转ONNX协议 : 飞桨框架模型转换为ONNX格式介绍。

二、VisualDL 工具

  • VisualDL 工具简介
  • VisualDL 使用指南

三、动态图转静态图

动态图有诸多优点,包括易用的接口,Python风格的编程体验,友好的debug交互机制等。在动态图模式下,代码是按照我们编写的顺序依次执行。这种机制更符合Python程序员的习 惯,可以很方便地将大脑中的想法快速地转化为实际代码,也更容易调试。但在性能方面, Python执行开销较大,与C++有一定差距。因此在工业界的许多部署场景中(如大型推荐系统、移动端)都倾向于直接使用C++来提速。

相比动态图,静态图在部署方面更具有性能的优势。静态图程序在编译执行时,先搭建模型 的神经网络结构,然后再对神经网络执行计算操作。预先搭建好的神经网络可以脱离Python依赖,在C++端被重新解析执行,而且拥有整体网络结构也能进行一些网络结构的优化。

动态图代码更易编写和debug,但在部署性能上,静态图更具优势。因此我们新增了动态图转静态图的功能,支持用户依然使用动态图编写组网代码。PaddlePaddle会对用户代码进行 分析,自动转换为静态图网络结构,兼顾了动态图易用性和静态图部署性能两方面优势。

我们在以下链接介绍PaddlePaddle动态图转静态图的各个部分:

  • 基本用法 : 介绍了动态图转静态图的基本使用方法

  • 内部架构原理 :介绍了动态图转静态图的架构原理

  • 支持语法列表 :介绍了动态图转静态图支持的语法以及罗列不支持的语法写法

  • InputSpec功能介绍 :介绍了动态图转静态图指定输入InputSpec的功能和用法

  • 报错信息处理 :介绍了动态图转静态图的报错信息处理方法

  • 调试方法 :介绍了动态图转静态图支持的调试方法

四、推理部署

作为飞桨生态重要的一部分,飞桨提供了多个推理产品,完整承接深度学习模型应用的最后一公里。整体上分,推理产品主要包括如下子产品

名称

英文表示

适用场景

飞桨原生推理库

Paddle Inference

高性能服务器端、云端推理

飞桨服务化推理框架

Paddle Serving

自动服务、模型管理等高阶功能

飞桨轻量化推理引擎

Paddle Lite

移动端、物联网等

飞桨前端推理引擎

Paddle.js

浏览器中推理、小程序等

各产品在推理生态中的关系如下

用户使用飞桨推理产品的工作流 如下

  1. 获取一个飞桨的推理模型,其中有两种方法

    1. 利用飞桨训练得到一个推理模型

    2. 用 X2Paddle 工具从第三方框架(比如 TensorFlow 或者 Caffe 等)产出的模型转化

  2. (可选)对模型进行进一步优化, PaddleSlim 工具可以对模型进行压缩,量化,裁剪等工作,显著提升模型执行的速度性能,降低资源消耗

  3. 将模型部署到具体的推理产品上

五、分布式训练

您可以通过以下内容,了解飞桨分布式训练的特性和使用指南:

  • 分布式训练快速开始 : 使用飞桨框架快速开始分布式训练。

  • 使用FleetAPI进行分布式训练 : 使用飞桨框架FleetAPI完成分布式训练。

六、昆仑XPU芯片运行飞桨

百度昆仑AI计算处理器(Baidu KUNLUN AI Computing Processor)是百度集十年AI产业技术实践于2019年推出的全功能AI芯片。基于自主研发的先进XPU架构,为云端和边缘端的人工智能业务而设计。 百度昆仑与飞桨及其他国产软硬件强强组合,打造一个全面领先的国产化AI技术生态,部署和应用于诸多 “人工智能+“的行业领域,包括智能云和高性能计算,智慧制造、智慧城市和安防等。更多昆仑XPU芯片详情及技术指标请 点击这里 。 参考以下内容可快速了解和体验昆仑XPU芯片上运行飞桨:

  • 飞桨对昆仑XPU芯片的支持 : 飞桨支持昆仑XPU芯片运行

  • 飞桨框架昆仑xpu版安装说明 : 飞桨框架昆仑xpu版安装说明

  • 飞桨框架昆仑XPU版训练示例 : 飞桨框架昆仑XPU版训练示例

七、自定义算子

本部分将指导您如何在飞桨中新增算子(Operator,简称Op),也包括一些必要的注意事项

  • 自定义原生算子

  • 原生算子开发注意事项

  • 自定义Python算子(静态图)

  • 自定义外部算子(新)

  • 自定义外部算子(旧)

八、参与开发

  • 本地开发指南
  • 提交PR注意事项
  • FAQ

其他说明

您可以通过以下内容,了解更多飞桨框架的说明:

  • 飞桨硬件支持 : 说明飞桨产品支持的硬件。

  • 飞桨框架API映射表 : 说明飞桨框架1.X版本与飞桨框架2.0版本API对应关系。

博文参考

深度学习平台——Paddle核心框架介绍相关推荐

  1. 百度开源深度学习平台Paddle

    百度开源深度学习平台Paddle 吃瓜群众表示只想知道好不好.百度今天开源了其深度学习平台Paddle,引发了挺多人工智能领域开发者的兴趣,包括一些之前一直在Tensorflow和Caffe上练手的开 ...

  2. Win10_64位系统安装CUDA、CUDDN、深度学习平台Paddle 、PaddleX安装总结

    人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学.2016年8月百度开源了深度学习框 ...

  3. 微博深度学习平台架构和实践

    深度学习平台介绍: 什么是深度学习框架? 深度学习框架是进行深度学习的工具.简单来说,一套深度学习框架就是一套积木,各个组件就是某个模型或算法:开发者通过简单设计和组装就能获得自己的一套方案.深度学习 ...

  4. 1.3 飞桨开源深度学习平台介绍

    介绍飞桨在行业内的应用情况.产品全景.技术优势,以及飞桨的安装方法和联系方式. 深度学习框架 近年来深度学习在很多机器学习领域都有着非常出色表现,在图像识别.语音识别.自然语言处理.机器人.网络广告投 ...

  5. AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍

    AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍 深度学习框架 深度学习框架优势 深度学习框架设计思路 飞桨开源深度学习平台 飞桨开源深度学习平台全景 框架和全流程工具 模 ...

  6. semiplannar 什么是_图像识别VPU——易用的嵌入式AI支持深度学习平台介绍

    公司玩了大半年的嵌入式AI平台,现在产品进入量产模式,也接触了很多嵌入式方案,有了一些心得体会,本人不才,在这里介绍一下一款简单易用的嵌入式AI方案--Movidius Myriad 2 VPU(MA ...

  7. 图像识别VPU——易用的嵌入式AI支持深度学习平台介绍

    公司玩了大半年的嵌入式AI平台,现在产品进入量产模式,也接触了很多嵌入式方案,有了一些心得体会,本人不才,在这里介绍一下一款简单易用的嵌入式AI方案--Movidius Myriad 2 VPU(MA ...

  8. 飞桨开源深度学习平台介绍

    深度学习框架 近年来深度学习在很多机器学习领域都有着非常出色的表现,在图像识别.语音识别.自然语言处理.机器人.网络广告投放.医学自动诊断和金融等领域有着广泛应用.面对繁多的应用场景,深度学习框架有助 ...

  9. 第九章:深度学习平台及框架

    目录 ➢ Part One.深度学习平台概览 ➢一.深度学习平台框架对照 ➢ Part Two.TensorFlow ➢一.TensorFlow的起源 ➢二.TensorFlow中的张量 ➢三.Ten ...

最新文章

  1. linux用数字方式显示文件权限,全面解析Linux数字文件权限
  2. python 避免多重条件嵌套_如何避免多层嵌套函数
  3. 关于web自动化操作的分析和基类的实现
  4. 云栖专辑 | 阿里开发者们的第6个感悟:享受折磨
  5. oracle 11gr2 asm安装,OEL6.1下oracle 11gr2 ASM安装
  6. mysql5.7空间运算_msyql5.7数据类型和运算符
  7. 计算机维护宝典,超齐全的维修宝典之电脑维修实例大全
  8. mapreduce task与spark task对比
  9. js动态计算移动端rem
  10. Java学习不走弯路教程(16 用Ajava异步请求)
  11. paip.消除 Java 的冗长try/catch/finally
  12. 风控项目2---风控建模流程
  13. 通俗易懂的LDA模型
  14. phpnow php.ini,phpnow php探针环境检测代码
  15. C#远程启动、终止进程
  16. 解决IE浏览器低版本兼容性问题的最快方法
  17. Kindle如何带封面传书
  18. 【学习小记】常系数齐次线性递推
  19. ubuntu+cuda+theano
  20. 工程伦理--4.1 解决伦理困境的一般步骤

热门文章

  1. 苹果cms用Fusion app对接封装app源码教程
  2. 小学奥数 7833 幂的末尾 python
  3. 小程序wx.downloadFile下载pdf并保存
  4. 关于nginx指向nacos遇到的坑
  5. 对豆瓣电影Top250榜单的一些探索性分析
  6. linux下如何删除垃圾文件
  7. 现在汉语也能编程了!学编程,英语还重要吗?
  8. UE4 使用自发光材质作为烘焙光源
  9. 【C语言】C语言之数字金字塔全家桶
  10. Java咖啡馆---品味第一杯咖啡