深度学习平台——Paddle核心框架介绍
摘要
本博文将最后的讲解和学习有关于的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 的组网。训练与预测 : 飞桨框架训练与预测的方法,有两种方式,一种是使用高层API
paddle.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 |
浏览器中推理、小程序等 |
各产品在推理生态中的关系如下
用户使用飞桨推理产品的工作流 如下
获取一个飞桨的推理模型,其中有两种方法
利用飞桨训练得到一个推理模型
用 X2Paddle 工具从第三方框架(比如 TensorFlow 或者 Caffe 等)产出的模型转化
(可选)对模型进行进一步优化, PaddleSlim 工具可以对模型进行压缩,量化,裁剪等工作,显著提升模型执行的速度性能,降低资源消耗
将模型部署到具体的推理产品上
五、分布式训练
您可以通过以下内容,了解飞桨分布式训练的特性和使用指南:
分布式训练快速开始 : 使用飞桨框架快速开始分布式训练。
使用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核心框架介绍相关推荐
- 百度开源深度学习平台Paddle
百度开源深度学习平台Paddle 吃瓜群众表示只想知道好不好.百度今天开源了其深度学习平台Paddle,引发了挺多人工智能领域开发者的兴趣,包括一些之前一直在Tensorflow和Caffe上练手的开 ...
- Win10_64位系统安装CUDA、CUDDN、深度学习平台Paddle 、PaddleX安装总结
人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学.2016年8月百度开源了深度学习框 ...
- 微博深度学习平台架构和实践
深度学习平台介绍: 什么是深度学习框架? 深度学习框架是进行深度学习的工具.简单来说,一套深度学习框架就是一套积木,各个组件就是某个模型或算法:开发者通过简单设计和组装就能获得自己的一套方案.深度学习 ...
- 1.3 飞桨开源深度学习平台介绍
介绍飞桨在行业内的应用情况.产品全景.技术优势,以及飞桨的安装方法和联系方式. 深度学习框架 近年来深度学习在很多机器学习领域都有着非常出色表现,在图像识别.语音识别.自然语言处理.机器人.网络广告投 ...
- AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍
AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍 深度学习框架 深度学习框架优势 深度学习框架设计思路 飞桨开源深度学习平台 飞桨开源深度学习平台全景 框架和全流程工具 模 ...
- semiplannar 什么是_图像识别VPU——易用的嵌入式AI支持深度学习平台介绍
公司玩了大半年的嵌入式AI平台,现在产品进入量产模式,也接触了很多嵌入式方案,有了一些心得体会,本人不才,在这里介绍一下一款简单易用的嵌入式AI方案--Movidius Myriad 2 VPU(MA ...
- 图像识别VPU——易用的嵌入式AI支持深度学习平台介绍
公司玩了大半年的嵌入式AI平台,现在产品进入量产模式,也接触了很多嵌入式方案,有了一些心得体会,本人不才,在这里介绍一下一款简单易用的嵌入式AI方案--Movidius Myriad 2 VPU(MA ...
- 飞桨开源深度学习平台介绍
深度学习框架 近年来深度学习在很多机器学习领域都有着非常出色的表现,在图像识别.语音识别.自然语言处理.机器人.网络广告投放.医学自动诊断和金融等领域有着广泛应用.面对繁多的应用场景,深度学习框架有助 ...
- 第九章:深度学习平台及框架
目录 ➢ Part One.深度学习平台概览 ➢一.深度学习平台框架对照 ➢ Part Two.TensorFlow ➢一.TensorFlow的起源 ➢二.TensorFlow中的张量 ➢三.Ten ...
最新文章
- linux用数字方式显示文件权限,全面解析Linux数字文件权限
- python 避免多重条件嵌套_如何避免多层嵌套函数
- 关于web自动化操作的分析和基类的实现
- 云栖专辑 | 阿里开发者们的第6个感悟:享受折磨
- oracle 11gr2 asm安装,OEL6.1下oracle 11gr2 ASM安装
- mysql5.7空间运算_msyql5.7数据类型和运算符
- 计算机维护宝典,超齐全的维修宝典之电脑维修实例大全
- mapreduce task与spark task对比
- js动态计算移动端rem
- Java学习不走弯路教程(16 用Ajava异步请求)
- paip.消除 Java 的冗长try/catch/finally
- 风控项目2---风控建模流程
- 通俗易懂的LDA模型
- phpnow php.ini,phpnow php探针环境检测代码
- C#远程启动、终止进程
- 解决IE浏览器低版本兼容性问题的最快方法
- Kindle如何带封面传书
- 【学习小记】常系数齐次线性递推
- ubuntu+cuda+theano
- 工程伦理--4.1 解决伦理困境的一般步骤