【问题标题】:Transformers pretrained model with dropout setting带有 dropout 设置的 Transformers 预训练模型
【发布时间】:2020-11-21 19:14:57
【问题描述】:

我正在尝试使用 Transformer 的拥抱脸预训练模型 bert-base-uncased,但我想增加 dropout。 from_pretrained 方法中没有提到这一点,但是 colab 运行下面的对象实例化没有任何问题。我在 classtransformers.BertConfig 文档中看到了这些 dropout 参数。

我是否以正确的方式使用了 bert-base-uncased AND 更改 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
    )

【问题讨论】:

    标签: python bert-language-model huggingface-transformers


    【解决方案1】:

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

    【讨论】:

    • 它如何与from_pretrained() 函数一起工作?
    • 我建议您查看this example 以了解其工作原理。一个简单的用bert做的token分类示例
    • 也许您可以更改您的答案以包含一个工作示例,该示例使用您建议的配置解决方案回答 OP 问题(我个人尝试将配置传递给 from_pretrained 函数并且遇到了一些问题,但也许我是做错了)
    • 关于如何使用from_pretrained() 进行配置、模型和标记器的答案可以在我发送的链接中找到,正是here。如果你有不清楚的地方,我建议你问一个新问题:把你的问题解释清楚,插入你正在使用的代码,否则很难帮助你。
    猜你喜欢
    • 2018-11-02
    • 2021-01-02
    • 2020-06-13
    • 2020-08-12
    • 2021-01-08
    • 2023-03-13
    • 2017-08-19
    • 2022-10-20
    • 1970-01-01
    相关资源
    最近更新 更多