首页 > 解决方案 > 如何在训练期间保持模型固定?

问题描述

我正在尝试实现一个模型,该模型使用来自不同数据集上的多个预训练 BERT 模型的编码,并使用全连接层获得组合表示。在这一点上,我希望 BERT 模型应该保持固定,并且只有完全连接的层应该得到训练。是否有可能在拥抱面部变形金刚中实现这一点?我没有看到任何允许我这样做的标志。

PS:我不想转储每个 BERT 模型的输入编码并将它们用作输入。

标签: pythondeep-learningnlppytorchhuggingface-transformers

解决方案


一个简单的解决方案是在传递给优化器时仅排除与 BERT 模型相关的参数。

param_optimizer = [x for x in param_optimizer if 'bert' not in x[0]]
optimizer = AdamW(param_optimizer, lr)

推荐阅读