当前位置: 首页 > wzjs >正文

做网站编程要学什么wordpress文字主题

做网站编程要学什么,wordpress文字主题,网站图片被盗连怎么办啊,小企业官方网站制作Keras中的循环层 上面的NumPy简单实现对应一个实际的Keras层—SimpleRNN层。不过,二者有一点小区别:SimpleRNN层能够像其他Keras层一样处理序列批量,而不是像NumPy示例中的那样只能处理单个序列。也就是说,它接收形状为(batch_si…

Keras中的循环层

上面的NumPy简单实现对应一个实际的Keras层—SimpleRNN层。不过,二者有一点小区别:SimpleRNN层能够像其他Keras层一样处理序列批量,而不是像NumPy示例中的那样只能处理单个序列。也就是说,它接收形状为(batch_size,timesteps, input_features)的输入,而不是(timesteps, input_features)。指定初始Input()的shape参数时,你可以将timesteps设为None,这样神经网络就能够处理任意长度的序列,如代码清单10-16所示。

代码清单10-16 能够处理任意长度序列的RNN层

num_features = 14
inputs = keras.Input(shape=(None, num_features))
outputs = layers.SimpleRNN(16)(inputs)

果你想让模型处理可变长度的序列,那么这就特别有用。但是,如果所有序列的长度相同,那么我建议指定完整的输入形状,因为这样model.summary()能够显示输出长度信息,这总是很好的,而且还可以解锁一些性能优化功能。Keras中的所有循环层(SimpleRNN层、LSTM层和GRU层)都可以在两种模式下运行:一种是返回每个时间步连续输出的完整序列,即形状为(batch_size, timesteps,output_features)的3阶张量;另一种是只返回每个输入序列的最终输出,即形状为(batch_size, output_features)的2阶张量。这两种模式由return_sequences参数控制。我们来看一个SimpleRNN示例,它只返回最后一个时间步的输出,如代码清单10-17所示。

代码清单10-17 只返回最后一个时间步输出的RNN层

>>> num_features = 14
>>> steps = 120
>>> inputs = keras.Input(shape=(steps, num_features))
>>> outputs = layers.SimpleRNN(16, return_sequences=False)(inputs)----请注意,默认情况下使用return_sequences=False
>>> print(outputs.shape)
(None, 16)

代码清单10-18给出的示例返回了完整的状态序列。

代码清单10-18 返回完整输出序列的RNN层

>>> num_features = 14
>>> steps = 120
>>> inputs = keras.Input(shape=(steps, num_features))
>>> outputs = layers.SimpleRNN(16, return_sequences=True)(inputs)
>>> print(outputs.shape)
(None, 120, 16)

为了提高神经网络的表示能力,有时将多个循环层逐个堆叠也是很有用的。在这种情况下,你需要让所有中间层都返回完整的输出序列,如代码清单10-19所示。

代码清单10-19 RNN层堆叠

inputs = keras.Input(shape=(steps, num_features))
x = layers.SimpleRNN(16, return_sequences=True)(inputs)
x = layers.SimpleRNN(16, return_sequences=True)(x)
outputs = layers.SimpleRNN(16)(x)

我们在实践中很少会用到SimpleRNN层。它通常过于简单,没有实际用途。特别是SimpleRNN层有一个主要问题:在t时刻,虽然理论上来说它应该能够记住许多时间步之前见过的信息,但事实证明,它在实践中无法学到这种长期依赖。原因在于梯度消失问题,这一效应类似于在层数较多的非循环网络(前馈网络)中观察到的效应:随着层数的增加,神经网络最终变得无法训练。Yoshua Bengio等人在20世纪90年代初研究了这一效应的理论原因。

值得庆幸的是,SimpleRNN层并不是Keras中唯一可用的循环层,还有另外两个:LSTM层和GRU层,二者都是为解决这个问题而设计的。我们来看LSTM层,其底层的长短期记忆(LSTM)算法由Sepp Hochreiter和Jürgen Schmidhuber在1997年开发4,是二人研究梯度消失问题的重要成果。

LSTM层是SimpleRNN层的变体,它增加了一种携带信息跨越多个时间步的方式。假设有一条传送带,其运行方向平行于你所处理的序列。序列中的信息可以在任意位置跳上传送带,然后被传送到更晚的时间步,并在需要时原封不动地跳回来。这其实就是LSTM的原理:保存信息以便后续使用,从而防止较早的信号在处理过程中逐渐消失。这应该会让你想到残差连接,二者的思路几乎相同。为了详细解释LSTM,我们先从SimpleRNN单元开始讲起,如图10-8所示。因为有许多个权重矩阵,所以对单元中的W和U两个矩阵添加下标字母o(Wo和Uo)​,表示输出(output)​。

在这里插入图片描述

我们向图10-8中添加新的数据流,其中携带跨越时间步的信息。这条数据流在不同时间步的值称为c_t,其中c表示携带(carry)​。这些信息会对单元产生以下影响:它将与输入连接和循环连接进行计算(通过密集变换,即与权重矩阵做点积,然后加上偏置,再应用激活函数)​,从而影响传递到下一个时间步的状态(通过激活函数和乘法运算)​。从概念上来看,携带数据流可以调节下一个输出和下一个状态,如图10-9所示。到目前为止,内容都很简单。

在这里插入图片描述

下面来看一下这种方法的精妙之处,即携带数据流下一个值的计算方法。它包含3个变换,这3个变换的形式都与SimpleRNN单元相同,如下所示。

y = activation(dot(state_t, U) + dot(input_t, W) + b)

但这3个变换都有各自的权重矩阵,我们分别用字母i、f、k作为下标。目前的模型如代码清单10-20所示(这可能看起来有些随意,但请你耐心一点)​。

代码清单10-20 LSTM架构的详细伪代码(1/2)

output_t = activation(dot(state_t, Uo) + dot(input_t, Wo) + dot(c_t, Vo) + bo)
i_t = activation(dot(state_t, Ui) + dot(input_t, Wi) + bi)
f_t = activation(dot(state_t, Uf) + dot(input_t, Wf) + bf)
k_t = activation(dot(state_t, Uk) + dot(input_t, Wk) + bk)

通过对i_t、f_t和k_t进行计算,我们得到了新的携带状态(下一个c_t)​,如代码清单10-21所示。代码清单10-21 LSTM架构的详细伪代码(2/2)

c_t+1 = i_t * k_t + c_t * f_t

添加上述内容之后的模型如图10-10所示。这就是LSTM层,不算很复杂,只是稍微有些复杂而已。

在这里插入图片描述

你甚至可以解释每个运算的作用。比如你可以说,将c_t和f_t相乘,是为了故意遗忘携带数据流中不相关的信息。同时,i_t和k_t都包含关于当前时间步的信息,可以用新信息来更新携带数据流。但归根结底,这些解释并没有多大意义,因为这些运算的实际效果是由权重参数决定的,而权重以端到端的方式进行学习,每次训练都要从头开始,因此不可能为某个运算赋予特定的意义。RNN单元的类型(如前所述)决定了假设空间,即在训练过程中搜索良好模型配置的空间,但它不能决定RNN单元的作用,那是由单元权重来决定的。相同的单元具有不同的权重,可以起到完全不同的作用。因此,RNN单元的运算组合最好被解释为对搜索的一组约束,而不是工程意义上的设计。这种约束的选择(如何实现RNN单元)最好留给优化算法来完成(比如遗传算法或强化学习过程)​,而不是让人类工程师来完成。那将是未来我们构建模型的方式。总之,你不需要理解LSTM单元的具体架构。作为人类,你不需要理解它,而只需记住LSTM单元的作用:允许过去的信息稍后重新进入,从而解决梯度消失问题。


文章转载自:

http://cgNadhO9.yrjkz.cn
http://Em1cUnOE.yrjkz.cn
http://v3p05UHt.yrjkz.cn
http://DCa81T0z.yrjkz.cn
http://wg2yloqt.yrjkz.cn
http://zrhY4Ccc.yrjkz.cn
http://VX55J3cZ.yrjkz.cn
http://fnFFGIgu.yrjkz.cn
http://K1EblrN5.yrjkz.cn
http://zxSqG2XN.yrjkz.cn
http://PLjGVjJx.yrjkz.cn
http://5H5RktMR.yrjkz.cn
http://xj8WIYSQ.yrjkz.cn
http://9fxAwC2f.yrjkz.cn
http://WTKhTzNh.yrjkz.cn
http://vCaVpxuv.yrjkz.cn
http://hTjsNjOK.yrjkz.cn
http://Cgs5TlQj.yrjkz.cn
http://XtiJph1L.yrjkz.cn
http://aoyPHVk6.yrjkz.cn
http://eLtoN2De.yrjkz.cn
http://D4axhg2B.yrjkz.cn
http://hI5a4rsh.yrjkz.cn
http://CMuz65Y8.yrjkz.cn
http://EsfY5hBV.yrjkz.cn
http://L3mLSmdm.yrjkz.cn
http://NAffCBRf.yrjkz.cn
http://23Z3w4Sc.yrjkz.cn
http://IA94xSiK.yrjkz.cn
http://3HTRq1aT.yrjkz.cn
http://www.dtcms.com/wzjs/629293.html

相关文章:

  • 网站建设培训机构哪里好开购物网站需要多少钱
  • 做网站费用分几块做的比较好的企业网站
  • 哪些网站专门做康复科租电信网站服务器吗
  • 关于建设网站安全性合同河南网站建站系统平台
  • 本地wordpress怎么弄网站网站建设 今网科技
  • 免费app制作网站杭州公司注册多少钱
  • 整站下载器 安卓版龙岩天宫山缆车开放时间
  • 做游戏直播那个网站好北京网站空间
  • 分析竞争对手的网站警惕网站免费看手机
  • 中国做铁塔的公司网站网络平台营销
  • 单页网站有哪些做oa好 还是做网站好
  • 韩国网站 后缀深圳网页设计兴田德润电话多少
  • 太原网站建设服务哪个网站可以做图交易平台
  • 网站设计公司 上商城开发价格服务
  • 做海报网站找网站开发项目
  • 西安企业网站建设价格陕西恒立建设集团网站
  • 怎样开发网站建设网站建设费用申报
  • 对接空间站梧州网站推广
  • 网站源码分享网郑州量站站软件开发有限公司
  • asp网站ftp入侵高度重视机关门户网站建设
  • 网站建设 淘宝详情住房和城乡建设部网站施工员证
  • 宿迁网站建设怎么收费宁波市网站集约化建设通知
  • 网站建设指导方案开什么网店简单又挣钱
  • 互联网公司排名前十的在哪些城市官网seo哪家公司好
  • 做家政网站公司名称甘肃省建设厅门户网站
  • 网站被k了怎么办免费商城系统网站建设
  • 定制开发电商网站建设多少钱阿里巴巴运营教程
  • 如何建设电影会员网站html5网站制作软件
  • 个人求职网站履历怎么做公众号运营策划
  • 泰州腾讯网站开发免费自助建站系统大全