Raf*_*iga 11 python bert-language-model huggingface-transformers
我正在尝试使用 Transformer 的 Huggingface 预训练模型bert-base-uncased,但我想增加 dropout。方法中没有提到这一点from_pretrained,但 colab 运行下面的对象实例化没有任何问题。我在classtransformers.BertConfig文档中看到了这些 dropout 参数。
我是否使用 bert-base-uncased 并以正确的方式改变 dropout ?
model = BertForSequenceClassification.from_pretrained(
pretrained_model_name_or_path='bert-base-uncased',
num_labels=2,
output_attentions = False,
output_hidden_states = False,
attention_probs_dropout_prob=0.5,
hidden_dropout_prob=0.5
)
Run Code Online (Sandbox Code Playgroud)
正如Elidor00已经说过的,你的假设是正确的。同样,我建议使用单独的配置,因为它更容易导出并且不太容易导致错误。另外,评论中有人询问如何通过以下方式使用它from_pretrained:
from transformers import BertModel, AutoConfig
configuration = AutoConfig.from_pretrained('bert-base-uncased')
configuration.hidden_dropout_prob = 0.5
configuration.attention_probs_dropout_prob = 0.5
bert_model = BertModel.from_pretrained(pretrained_model_name_or_path = 'bert-base-uncased',
config = configuration)
Run Code Online (Sandbox Code Playgroud)
是的,这是正确的,但请注意,有两个 dropout 参数,并且您正在使用特定的 Bert 模型,即BertForSequenceClassification。
另外,根据文档的建议,您可以首先定义配置,然后按以下方式定义方式:
from transformers import BertModel, BertConfig
# Initializing a BERT bert-base-uncased style configuration
configuration = BertConfig()
# Initializing a model from the bert-base-uncased style configuration
model = BertModel(configuration)
# Accessing the model configuration
configuration = model.config
Run Code Online (Sandbox Code Playgroud)