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

用动态和静态设计一个网站网站统计 wordpress

用动态和静态设计一个网站,网站统计 wordpress,公司宣传网站,一级A做爰片秋欲浓网站系列文章目录 终章 1:Attention的结构 终章 2:带Attention的seq2seq的实现 终章 3:Attention的评价 终章 4:关于Attention的其他话题 终章 5:Attention的应用 目录 系列文章目录 前言 一、编码器的实现 二、解…

系列文章目录

终章 1:Attention的结构

终章 2:带Attention的seq2seq的实现

终章 3:Attention的评价

终章 4:关于Attention的其他话题

终章 5:Attention的应用


目录

系列文章目录

前言

一、编码器的实现

二、解码器的实现

三、seq2seq的实现


前言

上一节实现了Attention层(以及Time Attention层),现在我们使用 这个层来实现“带Attention的seq2seq”。和上一章实现了3个类(Encoder、 Decoder 和 seq2seq)一样,这里我们也分别实现3个类(AttentionEncoder、 AttentionDecoder 和 AttentionSeq2seq)


一、编码器的实现

首先实现AttentionEncoder 类。这个类和上一章实现的Encoder类几乎一样,唯一的区别是,Encoder类的forward()方法仅返回LSTM层的最后的隐藏状态向量,而AttentionEncoder类则返回所有的隐藏状态向量。因此, 这里我们继承上一章的Encoder类进行实现。AttentionEncoder类的实现如下所示

class AttentionEncoder(Encoder):def forward(self, xs):xs = self.embed.forward(xs)hs = self.lstm.forward(xs)return hsdef backward(self, dhs):dout = self.lstm.backward(dhs)dout = self.embed.backward(dout)return dout

二、解码器的实现

接着实现使用了Attention层的解码器。使用了Attention的解码器的层结构如下图所示

从上图中可以看出,和上一章的实现一样,Softmax层(更确切地说,是Time Softmax with Loss层)之前的层都作为解码器。另外,和上一章一样,除了正向传播forward()方法和反向出传播backward()方法之外,还实现了生成新单词序列(字符序列)的generate()方法。这里给出Attention Decoder层的初始化方法和forward()方法等的实现,如下所示

class AttentionDecoder:def __init__(self, vocab_size, wordvec_size, hidden_size):V, D, H = vocab_size, wordvec_size, hidden_sizern = np.random.randnembed_W = (rn(V, D) / 100).astype('f')lstm_Wx = (rn(D, 4 * H) / np.sqrt(D)).astype('f')lstm_Wh = (rn(H, 4 * H) / np.sqrt(H)).astype('f')lstm_b = np.zeros(4 * H).astype('f')affine_W = (rn(2*H, V) / np.sqrt(2*H)).astype('f')affine_b = np.zeros(V).astype('f')self.embed = TimeEmbedding(embed_W)self.lstm = TimeLSTM(lstm_Wx, lstm_Wh, lstm_b, stateful=True)self.attention = TimeAttention()self.affine = TimeAffine(affine_W, affine_b)layers = [self.embed, self.lstm, self.attention, self.affine]self.params, self.grads = [], []for layer in layers:self.params += layer.paramsself.grads += layer.gradsdef forward(self, xs, enc_hs):h = enc_hs[:,-1]self.lstm.set_state(h)out = self.embed.forward(xs)dec_hs = self.lstm.forward(out)c = self.attention.forward(enc_hs, dec_hs)out = np.concatenate((c, dec_hs), axis=2)score = self.affine.forward(out)return scoredef backward(self, dscore):dout = self.affine.backward(dscore)N, T, H2 = dout.shapeH = H2 // 2dc, ddec_hs0 = dout[:,:,:H], dout[:,:,H:]denc_hs, ddec_hs1 = self.attention.backward(dc)ddec_hs = ddec_hs0 + ddec_hs1dout = self.lstm.backward(ddec_hs)dh = self.lstm.dhdenc_hs[:, -1] += dhself.embed.backward(dout)return denc_hsdef generate(self, enc_hs, start_id, sample_size):sampled = []sample_id = start_idh = enc_hs[:, -1]self.lstm.set_state(h)for _ in range(sample_size):x = np.array([sample_id]).reshape((1, 1))out = self.embed.forward(x)dec_hs = self.lstm.forward(out)c = self.attention.forward(enc_hs, dec_hs)out = np.concatenate((c, dec_hs), axis=2)score = self.affine.forward(out)sample_id = np.argmax(score.flatten())sampled.append(sample_id)return sampled

这里的实现除使用了新的Time Attention层之外,和上一章的Decoder类 没有什么太大的不同。需要注意的是,forward()方法中拼接了Time Attention 层的输出和LSTM层的输出。在上面的代码中,使用np.concatenate()方法进行拼接。 这里省略对AttentionDecoder 类的backward() 和 generate() 方法的说明。最后,我们使用AttentionEncoder类和AttentionDecoder 类来实现 AttentionSeq2seq类

三、seq2seq的实现

AttentionSeq2seq 类的实现也和上一章实现的seq2seq几乎一样。区别仅在于,编码器使用AttentionEncoder类,解码器使用AttentionDecoder类。 因此,只要继承上一章的Seq2seq类,并改一下初始化方法,就可以实现 AttentionSeq2seq 类

class AttentionSeq2seq(Seq2seq):def __init__(self, vocab_size, wordvec_size, hidden_size):args = vocab_size, wordvec_size, hidden_sizeself.encoder = AttentionEncoder(*args)self.decoder = AttentionDecoder(*args)self.softmax = TimeSoftmaxWithLoss()self.params = self.encoder.params + self.decoder.paramsself.grads = self.encoder.grads + self.decoder.grads

以上就是带Attention的seq2seq的实现。


文章转载自:

http://edmrrtUZ.mwLxk.cn
http://ZrE03kHQ.mwLxk.cn
http://evklXQrD.mwLxk.cn
http://QTouZ0l3.mwLxk.cn
http://r0AgeAYI.mwLxk.cn
http://JRWMmJno.mwLxk.cn
http://42sxhL7Q.mwLxk.cn
http://uGqsUqai.mwLxk.cn
http://7yLx8x87.mwLxk.cn
http://dkQhKU0N.mwLxk.cn
http://BlbDUaq7.mwLxk.cn
http://ktTLG69m.mwLxk.cn
http://luEwytSD.mwLxk.cn
http://AmkE0TaF.mwLxk.cn
http://jNmoQXJ0.mwLxk.cn
http://JOykNETR.mwLxk.cn
http://jF1uAJ1m.mwLxk.cn
http://JvNzDJGf.mwLxk.cn
http://QPOaq4U9.mwLxk.cn
http://ZFz2rJ8Z.mwLxk.cn
http://hGTwZIYO.mwLxk.cn
http://Fp1HUUyH.mwLxk.cn
http://vz5UZdQR.mwLxk.cn
http://SqjIsS8M.mwLxk.cn
http://BnGMstvl.mwLxk.cn
http://aGBXFDFc.mwLxk.cn
http://apcEALmi.mwLxk.cn
http://wUJkCxq8.mwLxk.cn
http://AvSO1VKP.mwLxk.cn
http://aCZnf9ln.mwLxk.cn
http://www.dtcms.com/wzjs/622287.html

相关文章:

  • 网站制作专业的公司wordpress福利
  • 柳州网站建设找华仔公司网站友情链接
  • 可做外链的网站重庆网站建设公司建站模板
  • 价格便宜的网站建设关键词搜索引擎工具
  • 驻马店网站建设zmdsem东莞网上注册公司
  • 网站开发的心得与体会一般注册公司多少钱
  • 做一个简单的网站怎么做网站如何报备
  • 班级网站素材下载电子商务网站开发 pdf
  • 网站开发的整个流程电商网站建设推广
  • 个人网站有必要备案吗wordpress怎么可以出现表格
  • 帝国cms做电影网站免费推广引流
  • 福州手游网站建设最便宜建站
  • 西安市高新区建设规划局网站wordpress 后台被锁定
  • 温州公司建设网站制作个人网站建设的花费
  • 哪个网站做ppt赚钱响应式视频网站模板
  • 商城站黑群晖可以做网站吗
  • 做书的网站有哪些内容吗企业邮箱免费版注册
  • 西安是哪个省哪个市网站打开速度优化
  • wordpress建站哪里好中国建设监理协会网站个人会员系统
  • 酒店网站建设必要性wordpress 自动跳转
  • 网站页面设计素材金色金融公司网站源码
  • 个人做的网站能备案吗深圳企业排名100强
  • 南昌企业做网站设计网站大量死链
  • 网站如何做双语言php网站开发实战视频
  • 网站建设的报价单龙岩网站建设套餐报价
  • 网站建设氺金手指排名11公司域名是什么意思
  • 服务器网站网站专用新开传奇网站排行
  • 网站前期定位京津冀协同发展建议
  • 安徽响应式网站建设哪家有单页面网站制作技术
  • 通过网站做跳板分销系统开发多少钱