本章主要内容如下:
- 序列填充
- 预训练词嵌入
- LSTM
- 双向 RNN
- 多层 RNN
- 正则化
- 优化
1.准备数据
首先设置seed,并将其分类训练、测试、验证集。
注意:由于 RNN 只能处理序列中的非 padded 元素(即非0数据),对于任何 padded 元素输出都是 0 。所以在准备数据的时候将include_length设置为True,以获得句子的实际长度。
import torch
from torchtext.legacy import data
SEED = 1234
torch.manual_seed(SEED)
torch.backends.cudnn.deterministic = True
TEXT = data.Field(tokenize = 'spacy',
tokenizer_language = 'en_core_web_sm',
include_lengths = True)
LABEL = data.LabelField(dtype = torch.float)
加载数据
from torchtext.legacy import datasets
tr