具有 dropout 设置的 Transformers 预训练模型

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)

tsc*_*ker 8

正如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)


Eli*_*r00 3

是的,这是正确的,但请注意,有两个 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)