NATURAL LANGUAGE PROCESSING · 05
理解 RNN 模型、文本分类任务、计算公式与 PyTorch API。
- RNN
- 文本分类
RNN 循环神经网络
1.RNN模型


由输入层、隐藏层、输出层组成;上一时间步的隐藏层输出作为下一个时间步的隐藏层输入
每个时间步的输入有2个:数据端输入,隐藏层输入
每个时间步的输出有2个:数据端输出,隐藏层输出
2.RNN分类
按照输入和输出的角度进行分类 N vs N – RNN 输入N个序列,输出N个序列 写诗 写对联 固定场景 N vs 1 – RNN 输入N个序列,输出1个的值 情感分类 意图识别 1 vs N – RNN 输入1个序列,输出N个的值 看图说话 N vs M – RNN 输入N个序列,输出M个序列 翻译、语音转换;文本生成、摘要
按照RNN的内部构造进行分类 传统RNN LSTM Bi-LSTM – 双向LSTM GRU Bi-GRU –双向GRU
3.RNN公式及API实现

import torch
import torch.nn as nn
# 1.创建rnn层
# 参数:输入维度,隐藏层维度,隐藏层层数
rnn = nn.RNN(2,3,2)
#2.准备输入x和初始化隐藏h0
# 参数:输入的序列长度(句子),输入的批次大小(batch-size),输入的维度
input = torch.randn(1,4,2)
# 参数:rnn层数,输入的批次大小(batch-size),隐藏层维度
h0 = torch.randn(2,4,3)
# 3. 将上一时刻隐藏和输入 传入 rnn
# 得到当前隐藏和输出
output,hidden = rnn(input,h0)
print(output.shape)
print(hidden.shape)
print(output)
print(hidden)