zoukankan      html  css  js  c++  java
  • 27:RNN循环神经网络-RNN layer

    1:RNN layer的计算

    【注】这里W的shape为[hidden len,feature len],hidden len意思是每句话的当前单词需要用多少个不同的W向量进行提取特征(结果将feature len压缩成hidden len实现降维)。feature len的意思是由于每个单词由feture len个特征表示,故每个不同的W的维度也必须是feature len。

    [注]x:[seq len,batch, feature len]。seq len为时间序列也即是每句话的单词数量。

    x_t=[batch,feature len]x_t表示t时刻输入的每句话的每个单词用多少个(feature len)特征表示。

    h:[seq len,batch,hidden len].hidden len表示每句话的记忆单元(每个单词降维后的叠加)需要用多少个不同的W向量进行特征提取(结果将feature len压缩成hidden len实现降维)。

    h_t=[batch ,hidden len]h_t表示t时刻数的每句话的记忆单元(每个单词降维后的叠加)用多少个(hidden len)不同的W向量进行特征提取(结果将feature len压缩成hidden len实现降维)。

    Whh=[hidden len,hidden len]

     

     【注】nn.RNN(pa1,pa2)pa1表示每个单词的维度,pa2表示每个记忆单元的维度。

     2:初始化

    3:单层RNN

     

     [注]前四行完成了初始化并且rnn(x,torch.zeros(1,3,20))实现了forward(x,h0)。h_0为第0时刻的记忆单元。h为最后时刻的记忆单元。

    4:多层RNN

     [注]h:[num layers,batch,h dim],out:[seq len,batch,h dim].h为每一层最后时刻每一个句子的记忆单元的维度。out输出的是最后一层所有记忆单元状态=【h0,h1............】。

     5:单层RNNCell

     【注】RNNCell表示只完成一个时间戳上的计算(也即是每句话只完成一个单词,不进行循环)

     [注]for循环是实现对x:[seq len,batch,feature len]的第一维度seq len 进行循环。

    6:多层RNNCell

  • 相关阅读:
    线程每隔5秒监控一次系统时间
    Struts2框架运行流程及案例
    list转为json
    Workbook读取Excel数据
    testng 接口测试,读取Excel表格数据,做数据驱动2(读取某些固定列数据)
    解析json数据,将json转为实体类
    通过maven命令将jar包放入本地仓库下
    遍历 Object[] [] 数组的值
    testng 接口测试,读取Excel表格数据,做数据驱动1(按照顺序读取Excel数据)
    解析json数据,将json转为Map
  • 原文地址:https://www.cnblogs.com/jiafeng1996/p/15114478.html
Copyright © 2011-2022 走看看