我想在序列到序列模型中使用預訓練的擁抱面部轉換器語言模型作為編碼器。
任務是語法糾錯,所以輸入和輸出都來自同一種語言。
因此,我想知道是否可以從擁抱面轉換器編碼器訪問嵌入層,并將其用作解碼器的嵌入層?
或者您可能會推薦其他一些方法?
uj5u.com熱心網友回復:
以bert為例
如果你加載 BertModel
from transformers import BertModel
model = BertModel.from_pretrained("bert-base-uncased")
print(model.embeddings)
# output is
BertEmbeddings(
(word_embeddings): Embedding(30522, 768, padding_idx=0)
(position_embeddings): Embedding(512, 768)
(token_type_embeddings): Embedding(2, 768)
(LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)
(dropout): Dropout(p=0.1, inplace=False)
)
如果您將 bert 與其他層一起加載(例如,BertForPreTraining 或 BertForSequenceClassification)
from transformers import BertForSequenceClassification
model = BertForSequenceClassification.from_pretrained("bert-base-uncased")
print(model.bert.embeddings)
# output is
BertEmbeddings(
(word_embeddings): Embedding(30522, 768, padding_idx=0)
(position_embeddings): Embedding(512, 768)
(token_type_embeddings): Embedding(2, 768)
(LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)
(dropout): Dropout(p=0.1, inplace=False)
)
uj5u.com熱心網友回復:
是的,您可以通過以下方式訪問它:
model.embeddings
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456593.html
上一篇:tidymodels中的錯誤-作業流集:提供的“網格”具有以下引數列,這些引數列尚未被“tune()”標記為調整
下一篇:使用insertSections而不是reloadData時出現NSInternalInconsistencyException
