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]
-
property
requires_grad
¶ Embedding的参数是否允许优化。True: 所有参数运行优化; False: 所有参数不允许优化; None: 部分允许优化、部分不允许 :return:
-
training
: bool¶
-
-
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
- 返回
-
property
requires_grad
¶ Embedding的参数是否允许优化。True: 所有参数运行优化; False: 所有参数不允许优化; None: 部分允许优化、部分不允许 :return:
-
training
: bool¶
-
property
num_embeddings
¶ 这个值可能会大于实际的embedding矩阵的大小。 :return:
-