【问题标题】:HuggingFace transformer how to freeze base tranformer after adding additional keras layerHuggingFace 变压器如何在添加额外的 keras 层后冻结基础变压器
【发布时间】:2021-08-03 14:42:51
【问题描述】:
我想在预训练的 BERT 模型的最后一层之后添加一个回归层。
所以应该是这样的:
output = bert_model([input_ids,attention_masks])
output = output[1]
output = tf.keras.layers.Dense(100,activation='relu')(output)
但我不知道如何冻结 BERT 模型并仅训练回归层。
有可能吗?
【问题讨论】:
标签:
keras
deep-learning
nlp
bert-language-model
huggingface-transformers
【解决方案1】:
您可以使用 layer_name.trainable = False 冻结 keras 中的模型权重
在你的情况下,你可以修改如下:
# assuming that you have defined bert_model as a layer before
bert_model.trainable = False
output = bert_model([input_ids,attention_masks])
output = output[1]
output = tf.keras.layers.Dense(100,activation='relu')(output)