我一直在使用预训练的嵌入(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)
这些等效吗,我是否有办法检查嵌入是否受到训练?
答案 0 :(得分:0)
是的,它们等同于embedding中的状态:
freeze (boolean, optional)
–如果为True
,则张量不会在学习过程中更新。等效于embedding.weight.requires_grad = False
。默认值:True
如果word_embeddingsA.requires_grad == True
,则说明嵌入正在接受训练,否则不是。