fastNLP.embeddings.embedding

该模块中的Embedding主要用于随机初始化的embedding(更推荐使用 fastNLP.embeddings.StaticEmbedding ),或按照预训练权重初始化Embedding。

class fastNLP.embeddings.embedding.Embedding(init_embed, word_dropout=0, dropout=0.0, unk_index=None)[源代码]

别名 fastNLP.embeddings.Embedding fastNLP.embeddings.embedding.Embedding

词向量嵌入,支持输入多种方式初始化. 可以通过self.num_embeddings获取词表大小; self.embedding_dim获取embedding的维度.

Example:

>>> import numpy as np
>>> from fastNLP.embeddings import Embedding
>>> init_embed = (2000, 100)
>>> embed = Embedding(init_embed)  # 随机初始化一个具有2000个词,每个词表示为100维的词向量
>>> init_embed = np.zeros((2000, 100))
>>> embed = Embedding(init_embed)  # 使用numpy.ndarray的值作为初始化值初始化一个Embedding
__init__(init_embed, word_dropout=0, dropout=0.0, unk_index=None)[源代码]
参数:
  • init_embed (tuple(int,int),torch.FloatTensor,nn.Embedding,numpy.ndarray) -- 支持传入Embedding的大小(传入tuple(int, int), 第一个int为vocab_zie, 第二个int为embed_dim); 或传入Tensor, Embedding, numpy.ndarray等则直接使用该值初始化Embedding;
  • word_dropout (float) -- 按照一定概率随机将word设置为unk_index,这样可以使得unk这个token得到足够的训练, 且会对网络有 一定的regularize的作用。设置该值时,必须同时设置unk_index
  • dropout (float) -- 对Embedding的输出的dropout。
  • unk_index (int) -- drop word时替换为的index。fastNLP的Vocabulary的unk_index默认为1。
forward(words)[源代码]
参数:words (torch.LongTensor) -- [batch, seq_len]
返回:torch.Tensor : [batch, seq_len, embed_dim]
requires_grad

Embedding的参数是否允许优化。True: 所有参数运行优化; False: 所有参数不允许优化; None: 部分允许优化、部分不允许 :return:

class fastNLP.embeddings.embedding.TokenEmbedding(vocab, word_dropout=0.0, dropout=0.0)[源代码]

别名 fastNLP.embeddings.TokenEmbedding fastNLP.embeddings.embedding.TokenEmbedding

fastNLP中各种Embedding的基类

drop_word(words)[源代码]

按照设定随机将words设置为unknown_index。

参数:words (torch.LongTensor) -- batch_size x max_len
返回:
dropout(words)[源代码]

对embedding后的word表示进行drop。

参数:words (torch.FloatTensor) -- batch_size x max_len x embed_size
返回:
get_word_vocab()[源代码]

返回embedding的词典。

返回:Vocabulary
num_embedding

这个值可能会大于实际的embedding矩阵的大小。 :return:

requires_grad

Embedding的参数是否允许优化。True: 所有参数运行优化; False: 所有参数不允许优化; None: 部分允许优化、部分不允许 :return: