我想将使用gensim进行预训练的word2vec嵌入加载到PyTorch嵌入层中。
所以我的问题是,如何让gensim将嵌入权重加载到PyTorch嵌入层中。
提前致谢!
我只是想报告我的发现,有关如何将gensim嵌入PyTorch。
0.4.0
和更高版本的解决方案:从v0.4.0
那里有一个新功能from_pretrained()
,使嵌入嵌入变得非常舒适。这是文档中的示例。
import torch
import torch.nn as nn
# FloatTensor containing pretrained weights
weight = torch.FloatTensor([[1, 2.3, 3], [4, 5.1, 6.3]])
embedding = nn.Embedding.from_pretrained(weight)
# Get embeddings for index 1
input = torch.LongTensor([1])
embedding(input)
gensim 的权重可以通过以下方式轻松获得:
import gensim
model = gensim.models.KeyedVectors.load_word2vec_format('path/to/file')
weights = torch.FloatTensor(model.vectors) # formerly syn0, which is soon deprecated
如@Guglie所指出:在较新的gensim版本中,权重可以通过以下方式获得model.wv
:
weights = model.wv
0.3.1
及更早版本的解决方案:我正在使用版本0.3.1
,from_pretrained()
但此版本不可用。
因此,我创建了自己的应用程序,from_pretrained
因此也可以将其与使用0.3.1
。
from_pretrained
PyTorch版本0.3.1
或更低版本的代码:
def from_pretrained(embeddings, freeze=True):
assert embeddings.dim() == 2, \
'Embeddings parameter is expected to be 2-dimensional'
rows, cols = embeddings.shape
embedding = torch.nn.Embedding(num_embeddings=rows, embedding_dim=cols)
embedding.weight = torch.nn.Parameter(embeddings)
embedding.weight.requires_grad = not freeze
return embedding
然后可以像下面这样加载嵌入:
embedding = from_pretrained(weights)
我希望这对某人有帮助。
本文向大家介绍python PyTorch预训练示例,包括了python PyTorch预训练示例的使用技巧和注意事项,需要的朋友参考一下 前言 最近使用PyTorch感觉妙不可言,有种当初使用Keras的快感,而且速度还不慢。各种设计直接简洁,方便研究,比tensorflow的臃肿好多了。今天让我们来谈谈PyTorch的预训练,主要是自己写代码的经验以及论坛PyTorch Forums上的一些回
本文向大家介绍Pytorch加载部分预训练模型的参数实例,包括了Pytorch加载部分预训练模型的参数实例的使用技巧和注意事项,需要的朋友参考一下 前言 自从从深度学习框架caffe转到Pytorch之后,感觉Pytorch的优点妙不可言,各种设计简洁,方便研究网络结构修改,容易上手,比TensorFlow的臃肿好多了。对于深度学习的初学者,Pytorch值得推荐。今天主要主要谈谈Pytorch是
本文向大家介绍基于pytorch 预训练的词向量用法详解,包括了基于pytorch 预训练的词向量用法详解的使用技巧和注意事项,需要的朋友参考一下 如何在pytorch中使用word2vec训练好的词向量 这个方法是在pytorch中将词向量和词对应起来的一个方法. 一般情况下,如果我们直接使用下面的这种: 这种情况下, 因为没有指定训练好的词向量, 所以embedding会帮咱们生成一个随机的词
在本章中,我们将了解单词嵌入模型—。Word2vec模型用于在相关模型组的帮助下生成单词嵌入。Word2vec模型使用纯C代码实现,并且手动计算梯度。 PyTorch中word2vec模型的实现在以下步骤中解释 - 第1步 在以下库中实现单词嵌入,如下所述 - 第2步 使用名为word2vec的类实现单词嵌入的Skip Gram模型。它包括:,,,类型的属性。 第3步 实现main方法,以正确的方
本文向大家介绍pytorch 使用加载训练好的模型做inference,包括了pytorch 使用加载训练好的模型做inference的使用技巧和注意事项,需要的朋友参考一下 前提: 模型参数和结构是分别保存的 1、 构建模型(# load model graph) model = MODEL() 2、加载模型参数(# load model state_dict) (解决RuntimeError:
在本章中,我们将重点学习如何从Scratch创建一个Convent。这推断了使用 torch 创建相应的修道院或样本神经网络。 第1步 使用各自的参数创建必要的类,参数包括具有随机值的权重。 第2步 使用函数创建函数的向前模式。 第3步 创建如下所述的培训和预测模型 -