您的方位:主页>>电脑软件

怎么用Paddle Fluid API建立一个简略的神经网络?这儿有一份编程攻略

fun88
发布时刻:2019-05-27 17:26:37  来历:互联网    布景:

  PaddlePaddle 是百度自主研制,集深度学习中心结构、东西组件和服务渠道为一体的开源深度学习渠道。该渠道技能抢先、功用齐备。Paddle Fluid 是 PaddlePaddle 的中心结构,满意模型开发、练习、布置的全流程需求。本文将展现怎么用 Paddle Fluid API 编程并建立一个简略的神经网络。

  那么,Paddle Fluid 有哪些中心概念?如安在 Paddle Fluid 中界说运算进程?怎么运用executor 运转 Paddle Fluid 操作?怎么从逻辑层对实际问题建模?怎么调用 API(层,数据集,丢掉函数,优化办法等等)呢?

  一、 运用 Tensor 表明数据

  Paddle Fluid 和其它干流结构相同,运用 Tensor 数据结构来承载数据。Tensor 能够简略了解成一个多维数组,一般来说能够有恣意多的维度。不同的 Tensor 能够具有自己的数据类型和形状,同一 Tensor 中每个元素的数据类型是相同的,Tensor 的形状便是 Tensor 的维度。

  下图直观地表明 1~6 维的 Tensor:

  在 Paddle Fluid 中存在三种特别的 Tensor:

  1. 模型中的可学习参数 模型中的可学习参数(包括网络权重、偏置等)生存期和整个练习任务相同长,会承受优化算法的更新,在 Paddle Fluid 中以 Variable 的子类 Parameter 表明。

  在 Paddle Fluid 中能够经过 fluid.layers.create_parameter 来创立可学习参数:

  一般情况下,您不需求自己来创立网络中的可学习参数,Paddle Fluid 为大部分常见的神经网络根本核算模块都供给了封装。以最简略的全衔接模型为例,下面的代码片段会直接为全衔接层创立衔接权值(W)和偏置(bias)两个可学习参数,无需显式地调用 Parameter 相关接口来创立。

  2.输入输出 Tensor :整个神经网络的输入数据也是一个特别的 Tensor,在这个 Tensor 中,一些维度的巨细在界说模型时无法确认(一般包括:batch size,假如 mini-batch 之间数据可变,也会包括图片的宽度和高度等),在界说模型时需求占位。

  Paddle Fluid 中运用 fluid.layers.data 来接纳输入数据,fluid.layers.data 需求供给输入 Tensor 的形状信息,当遇到无法确认的维度时,相应维度指定为 None 或 -1,如下面的代码片段所示:

  其间,dtype="int64" 表明有符号 64 位整数数据类型,更多 Paddle Fluid 现在支撑的数据类型请在官网查阅:http://paddlepaddle.org/documentation/docs/zh/1.4/user_guides/howto/prepare_data/feeding_data.html#fluid。

  3.常量 Tensor Paddle Fluid 经过 fluid.layers.fill_constant 来完结常量 Tensor,用户能够指定 Tensor 的形状,数据类型和常量值。代码完结如下所示:

  需求留意的是,上述界说的 tensor 并不具有值,它们仅表明行将履行的操作,如您直接打印 data 将会得到描绘该 data 的一段信息:

  输出效果:

  具体输出数值将在 Executor 运转时得到,具体进程会在后文打开描绘。

  数据传入

  Paddle Fluid 有特定的数据传入方法:

  您需求运用 fluid.layers.data 装备数据输入层,并在 fluid.Executor 或 fluid.ParallelExecutor 中,运用 executor.run(feed=...) 传入练习数据。

  具体的数据预备进程,您能够阅览官网运用攻略「预备数据」章节。

  运用 Operator 表明对数据的操作

  在 Paddle Fluid 中,一切对数据的操作都由 Operator 表明,您能够运用内置指令来描绘它们的神经网络。为了便于用户运用,在 Python 端,Paddle Fluid 中的 Operator 被一步封装入 paddle.fluid.layers,paddle.fluid.nets 等模块。这是由于一些常见的对 Tensor 的操作或许是由更多根底操作构成,为了进步运用的便利性,结构内部对根底 Operator 进行了一些封装,包括创立 Operator 依靠可学习参数,可学习参数的初始化细节等,削减用户重复开发的本钱。例如用户能够运用 paddle.fluid.layers.elementwise_add() 完结两个输入 Tensor 的加法运算:

  输出效果:

  本次运转时,输入 a=7,b=3,得到 outs=10。

  您能够仿制这段代码在本地履行,根据指示输入其它数值调查核算效果。

  假如想获取网络履行进程中的 a,b 的具体值,能够将期望检查的变量增加在 fetch_list 中。

  输出效果:

  运用 Program 描绘神经网络模型

  Paddle Fluid 不同于其它大部分深度学习结构,去掉了静态核算图的概念,代之以 Program 的方法动态描绘核算进程。这种动态的核算描绘方法兼具网络结构修正的灵活性和模型建立的快捷性,在确保功用的一起极大地进步了结构对模型的表达能力。

  开发者的一切 Operator 都将写入 Program,在 Paddle Fluid 内部将主动转化为一种叫作 ProgramDesc 的描绘言语,Program 的界说进程就像在写一段通用程序,有开发经历的用户在运用 Paddle Fluid 时,会很天然的将自己的常识搬迁过来。

  其间,Paddle Fluid 经过供给次序、分支和循环三种履行结构的支撑,让用户能够经过组合描绘恣意杂乱的模型。

  次序履行:

  用户能够运用次序履行的方法建立网络:

  条件分支——switch、if else:

  Paddle Fluid 中有 switch 和 if-else 类来完结条件挑选,用户能够运用这一履行结构在学习率调节器中调整学习率或其它期望的操作:

  关于 Paddle Fluid 中 Program 的具体规划思维,能够参阅阅览官网进阶运用「规划思维」中更多 Fluid 中的操控流,能够参阅阅览 API 文档。

  运用 Executor 履行 Program

  Paddle Fluid 的规划思维类似于高档编程言语 C++和 JAVA 等。程序的履行进程被分为编译和履行两个阶段。用户完结对 Program 的界说后,Executor 承受这段 Program 并转化为 C++后端实在可履行的 FluidProgram,这一主动完结的进程叫做编译。编译往后需求 Executor 来履行这段编译好的 FluidProgram。例如上文完结的加法运算,当构建好 Program 后,需求创立 Executor,进行初始化 Program 和练习 Program:

  代码实例

  您现已对 Paddle Fluid 中心概念有了开端认识了,无妨测验装备一个简略的网络吧。假如感兴趣的话能够跟从本部分,完结一个十分简略的数据猜测。

  从逻辑层面清晰了输入数据格式、模型结构、丢掉函数以及优化算法后,需求运用 Paddle Fluid 供给的 API 及算子来完结模型逻辑。一个典型的模型首要包括 4 个部分,分别是:输入数据格式界说,模型前向核算逻辑,丢掉函数以及优化算法。

  1、问题描绘 : 给定一组数据 <x,y>,求解出函数 f,使得 y=f(x),其间 X,Y 均为一维张量。终究网络能够根据输入 x,精确猜测出 y_predict。

  2、界说数据 : 假定输入数据 X=[1 2 3 4],Y=[2,4,6,8],在网络中界说:

  3、建立网络(界说前向核算逻辑) : 接下来需求界说猜测值与输入的联络,本次运用一个简略的线性回归函数进行猜测:

  这样的网络就能够进行猜测了,尽管输出效果仅仅一组随机数,离预期效果仍相差甚远:

  输出效果:

  4、增加丢掉函数 : 完结模型建立后,怎么评价猜测效果的好坏呢?咱们一般在规划的网络中增加丢掉函数,以核算实在值与猜测值的差。在本例中,丢掉函数选用均方差函数:

  

  输出一轮核算后的猜测值和丢掉函数:

  输出效果:

  能够看到第一轮核算后的丢掉函数为 9.0,仍有很大的下降空间。

  5、网络优化 确认丢掉函数后,能够经过前向核算得到丢掉值,然后经过链式求导规律得到参数的梯度值。获取梯度值后需求更新参数,最简略的算法是随机梯度下降法:w=w−η⋅g,由 fluid.optimizer.SGD 完结:

  让咱们的网络练习 100 次,检查效果:

  输出效果:

  能够看到 100 次迭代后,猜测值现已十分挨近实在值了,丢掉值也从初始值 9.05 下降到了 0.01。至此,祝贺您!现已成功运用 PaddlePaddle 中心结构 Paddle Fluid 建立了一个简略网络。假如您还想测验更多,能够从官网持续阅览相关的文档及更多丰厚的模型实例。

  参阅:

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

  PaddlePaddle 官网运用攻略地址:http://paddlepaddle.org/documentation/docs/zh/1.4/user_guides/index_cn.html

特别提示:本网内容转载自其他媒体,意图在于传递更多信息,并不代表本网附和其观念。其原创性以及文中陈说文字和内容未经本站证明,对本文以及其间悉数或许部分内容、文字的实在性、完整性、及时性本站不作任何确保或许诺,并请自行核实相关内容。本站不承当此类著作侵权行为的直接职责及连带职责。如若本网有任何内容侵略您的权益,请及时联络咱们,本站将会在24小时内处理完毕。


本文来历:互联网

本文谈论
友谊提示:谈论功用暂时封闭,请扫描上方二维码进群沟通!
近年来,国产作业功率类软件快速兴起,林林总总的作业功率类软件进入职场,可是,就挑选一款运用方...
日期:08-21
回来网站主页
时光荏苒,岁月如梭,转眼间炽热难耐的夏天现已带着一丝不舍向咱们挥手道别,而“立秋”...
日期:08-21
为国产作业运用正名 万兴PDF专家软件评测
开端,出售办理便是填各种表,后来引进出售办理软件,开端信息化办理。有了移动互联网之后,出售管...
日期:08-20
万兴PDF专家评测:消除PDF文档运用痛点,强壮功用终将 成为“爆款”软件
2019年8月,在蓝色光标AD大会上,妙笔智能公司正式推出了智能撰稿机器人2.0体系。在该体系下,经过"...
日期:08-16
CRM进入作业手机年代 讯众通讯要进入CRM范畴?
现在,正值招聘的黄金时期「秋招季」,各大企业的会集招聘正在炽热打开。怎么能在千百位应聘者中脱...
日期:08-15
妙笔2.0晋级体系不容小觑,快速捉住传达营销新趋势
近来,微博#用手机听音乐时收到语音音讯#这一论题备受重视。信任许多手机听歌收到微信语音时的心里O...
日期:08-09
这个 WPS 高效功用,让你轻松制造高水平简历
“轻量化”,本是轿车生产技能之一,能够做到确保轿车根本功用的情况下,下降分量进步操...
日期:08-09
听音乐时不想收到语音音讯 讯飞输入法语音输入更便利看
8月8日音讯 索泰今日发布了MAGNUS E系列ZBOX迷你PC,62.2毫米厚,搭载9代英特尔酷睿处理器和NVIDIA ...
日期:08-08
“轻量化”成趋势,作业OA体系怎么挑选?
8月8日音讯 旧金山时刻8月7日下午,AMD举行发布会,正式推出了7nm EPYC 7002系列处理器,最高64核12...
日期:08-08
索泰发布新款迷你PC:搭载9代酷睿和RTX显卡
长途操控作为一种新式的互联网操作方法,正在成为一种潮流。
日期:08-07
AMD 霄龙发布会现场实拍:双路EPYC,超大被迫散热器
现在,云核算、大数据、5G、AI人工智能、IoT物联网等新式技能日新月异,现已成为改动日子、工业和社...
日期:08-02
万物互联年代,一款长途操控软件的十年进化之路
信任不少小伙伴们都知道,字体关于PPT制造、宣扬海报规划而言,重要性显而易见,字体若是运用妥当,...
日期:08-02
破解数字化转型的暗码  用友2019全球企业服务大会行将开幕
说到下载电影、游戏、软件等,信任不少小伙伴都想到迅雷,作为一款装机必备的软件,网上也流传着很...
日期:08-02
这个高效神器,让你的PPT字体更美观
2019年7月20日,海纳汇联盟年度全国巡展第六站在杭州成功举行。
日期:07-29
迅雷破解版盘点,VIP破解版无限加速去广告通通不靠谱!
数据显现,
  每位顾客在超市每个终端展现货架前均匀逗留15秒,
  75%的人会在5秒...
日期:07-25
十年远控品牌向日葵露脸海纳汇,助力物联网企业数字化
决议职场人升职加薪的首要因素除老板外,还有你的作业文档。为什么呢?由于这些文档也是你作业效果最...
日期:07-25
货架革新,怎么拿下终端货架高地?
近来,科创板鸣锣开市,第一批25只新股正式在上交所开端买卖,开盘悉数大涨,乃至有的涨幅达520%,上...
日期:07-24
简略3步处理文档丢掉?试试WPS高效作业小好方法《四》
《星球大战》在全球具有数以亿计的粉丝,其天行者系列终章《星球大战9》在前段时刻宣告12月20日在北...
日期:07-15
科创板开市大涨引股民抢投,腾讯手机管家精准查杀5款病毒炒股APP
​二三四五好压自上线以来,因其“小、快、轻、便”的特色,在许多压缩软件中别出心裁。...
日期:07-12
有人打电话喊你出资《星球大战9》,腾讯手机管家精准阻拦欺诈电话
作为 Vue 的初学者,您或许现已听过许多关于它的专业术语了,例如:单页面运用程序、异步组件、服务...
日期:07-08
  专栏介绍
二三四五好压防护文件安全 MD5校验成亮点
王涵 的专栏
王涵宣告的文章
积分:
毛遂自荐 :