第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > pytorch Embedding模块 自动为文本加载预训练的embedding

pytorch Embedding模块 自动为文本加载预训练的embedding

时间:2018-12-30 19:14:10

相关推荐

pytorch Embedding模块 自动为文本加载预训练的embedding

pytorch 提供了一个简便方法torch.nn.Embedding.from_pretrained,可以将文本与预训练的embedding对应起来:

使用方法就是:

首先有一个预训练的embedding列表:

torch.Tensor([[0, 2, 3, 4],[1, 2, 3, 4],[2, 2, 3, 4],[3, 2, 3, 4], ])

这个顺序与词表的顺序要一致,这样,如果输入一个1,就意味着我要拿到第1个字的embedding,就是[1,2,3,4]

案例

# coding: UTF-8import torchimport torch.nn as nnclass Model(nn.Module):def __init__(self, embedding_pretrained):super(Model, self).__init__()self.embedding = nn.Embedding.from_pretrained(embedding_pretrained, freeze=False)def forward(self, x):out = self.embedding(x)return outif __name__ == '__main__':# 预训练的 embeddingpre_train = torch.Tensor([[0, 2, 3, 4],[1, 2, 3, 4],[2, 2, 3, 4],[3, 2, 3, 4], ])model = Model(pre_train)embedding = model(torch.Tensor([[1, 1, 1, 2, 0], # 第1句话包含的字的编号[1, 0, 2, 1, 1]]).long()) # 第2句话包含的字的编号

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。