BILSTM模型初始化
1.torch.nn.Embedding
self.embedding = nn.Embedding(vocab_size,embedding_size,padding_idx=pad_idx)
- num_embeddings:嵌入字典的大小(词的个数);
- embedding_dim:每个嵌入向量的大小;
- padding_idx:若给定,则每遇到 padding_idx 时,位于 padding_idx 的嵌入向量(即 padding_idx 映射所对应的向量)为0;
功能:将已经映射为数字的文本映射为embedding_dim维的向量,
输入:文本的 Long Tensor;
输出:输出 shape =(*,H),其中 * 为输入的 shape,H = embedding_dim(若输入 shape 为 N*M,则输出 shape 为 N*M*H);
torch.nn.Embedding 的权重为 num_embeddings * embedding_dim 的矩阵,例如输入10行,每行最多5个词,每个词用3为向量表示,则权重为10*5*3的矩阵;
import torch
from torch import nn
embedding = nn.Embedding(5, 4) # 假定字典中只有5个词,词向量维度为4
word = [[1, 2, 3],
[2, 3, 4]] # 每个数字代表一个词,例如 {'!':0,'how':1, 'are':2, 'you':3, 'ok':4}
#而且这些数字的范围只能在0~4之间,因为