1 Rnn
RNN(Recurrent Neural Network),中文称作循环神经网络,它一般以序列数据为输入,通过网络内部的结构段计有效捕捉序列之间的关系特征,一般也是以序列形式进行输出.
单层网络结构 在循环
rnn处理的过程
rnn类别
n - n
n - 1 使用sigmoid 或者softmax处理 应用在分类中
1- n x作用于每一个输入 图片生成文字
n - M
2传统rnn
内部结构
优缺点 :
计算资源的要求低,短序列表现优异.
缺点 长序列的关联时表现很差,在反向传播时候 梯度消失或者爆炸
2 lstm
能够有效捕捉长序列之间的语义关联,缓解梯度消失或爆炸现象.同时LSTM的结构更复杂,它的核心结构可以分为四个部分去解析: 输入门 遗忘门 输出们 细胞状态 .
遗忘门 代表遗忘过去的多少信息sigmiod
2.1 BI -LSTM
import torch.nn as nn
import torch
lstm = nn.LSTM(input_size=6, hidden_size=8, num_layers=2)
输入的词数量 每次处理样本的数量 维度
input = torch.randn(2,3,6)
# 层数 处理样本数 维度
h0 = torch.randn(2,3,8)
c0 = torch.randn(2,3,8)
output,(h1,c1) = lstm(input,(h0,c0))
print(output,h1,c1)
input
和 h0
的批量大小(batch_size
)必须相同。