mindtext.embeddings.embedding

该模块中的Embedding是一种随机初始化的embedding,我们更推荐您使用mindtext.embeddings.static_embedding, 或基于预训练权重初始化的Embedding

class mindtext.embeddings.embedding.Embedding (init_embed: Union[Tuple[int, int], np.ndarray, mindspore.Tensor, nn.Cell], dropout: float = 0.1)

词嵌入,支持多种方式的输入初始化。您可以使用self.num_embeddings获取词表大小,使用self.embedding_dim获取嵌入的维度

Example

>>> import numpy as np
>>> init_embed = (200, 100)
>>> embedding = Embedding(init_embed, 0.1)
>>> init_embed = np.random.randn(4, 3)
>>> embedding = Embedding(init_embed, 0.1)

init (init_embed: Union[Tuple[int, int], np.ndarray, mindspore.Tensor, nn.Cell], dropout: float = 0.1)

参数

  • init_embed (Union[Tuple[int, int], np.ndarray, mindspore.Tensor, nn.Cell]): 词嵌入的大小,传入tuple(int, int), 第一 个int为vocab_zie(词典大小),第二个int为embed_dim(嵌入维度大小)。若传入np.ndarray, mindspore.Tensor, nn.Cell,则直接使用该值初 始化词嵌入。

  • dropout (float): 对词嵌入的输出进行dropout。

construct (words: mindspore.Tensor)

参数

  • words (mindspore.Tensor): 单词的tokens,shape为(batch_size, seq_len)。

返回

  • mindspore.Tensor: 词嵌入的输出,shape为(batch_size, seq_len, embed_dim)。

class mindtext.embeddings.embedding.TokenEmbedding (vocab: Vocabulary, dropout: float = 0.1)

mindtext中各种Embedding的基类。

init (vocab: Vocabulary, dropout: float = 0.1)

参数

  • vocab (Vocabulary): 词表。

  • dropout (float): 对Embedding后的输出进行dropout,默认值为0.1。

get_word_vocab ()

返回embedding的词典。

返回: Vocabulary

dropout (words: mindspore.Tensor)

参数

  • words (mindspore.Tensor): 对embedding后的词向量表示进行dropout。

返回

  • mindspore.Tensor: dropout后的词向量表示。

num_embeddings ()

返回embedding的单词数量(即词典大小),这个值可能会大于实际的embedding矩阵的大小。