簡體   English   中英

在訓練神經網絡期間是否應該更改嵌入層?

[英]Should the embedding layer be changed during training a neural network?

我是深度學習和 Pytorch 領域的新人。

最近在學習NER任務pytorch教程示例之一時,發現nn.Embedding的embedding在訓練過程中發生了變化。

所以我的問題是在訓練網絡期間應該改變嵌入嗎?

如果我想將預訓練的嵌入(例如,經過訓練的 word2vec 嵌入)加載到 PyTorch 嵌入層中,在訓練過程中是否也應該更改預訓練的嵌入?

或者如何防止更新嵌入?

謝謝你。

人們可以在任務期間學習嵌入,針對手頭的任務對它們進行微調,或者保持原樣(前提是它們以前以某種方式學習過)。

在最后一種情況下,使用 word2vec 等標准嵌入最終會進行微調(使用小學習率),但使用提供的詞匯表和嵌入。 當涉及到當前的 SOTA 時,如 BERT 應始終對您的數據進行微調,但應以無監督的方式(如最初訓練的那樣)。

使用它們的最簡單方法是torch.nn.Embedding.from_pretrained ( docs ) 的靜態方法,並為 Tensor 提供您的預訓練數據。

如果您希望圖層可訓練,請傳遞freeze=False ,默認情況下它不是您想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM