使用torchtext对嵌入进行微调-nn.Embedding与nn.Embedding.from_pretrained

时间:2020-06-22 13:48:50

标签: pytorch torchtext

我一直在使用预训练的嵌入(Glove),并希望对其进行微调。我目前使用这样的嵌入:

word_embeddingsA = nn.Embedding(vocab_size, embedding_length)
word_embeddingsA.weight = nn.Parameter(TEXT.vocab.vectors, requires_grad=False)

我是否应该简单地设置require_grad = True以允许对嵌入进行训练?还是我应该做这样的事情

word_embeddingsA = nn.Embedding.from_pretrained(TEXT.vocab.vectors, freeze=False)

这些等效吗,我是否有办法检查嵌入是否受到训练?

1 个答案:

答案 0 :(得分:0)

是的,它们等同于embedding中的状态:

freeze (boolean, optional) –如果为True,则张量不会在学习过程中更新。等效于embedding.weight.requires_grad = False。默认值:True

如果word_embeddingsA.requires_grad == True,则说明嵌入正在接受训练,否则不是。