【发布时间】:2021-03-09 01:39:44
【问题描述】:
Bert 的架构类似于 encoder -> 12 BertLayer -> Pooling。我想训练 Bert 模型的最后 40% 层。我可以将所有图层冻结为:
# freeze parameters
bert = AutoModel.from_pretrained('bert-base-uncased')
for param in bert.parameters():
param.requires_grad = False
但我想训练最后 40% 的层。当我执行len(list(bert.parameters())) 时,它给了我 199。所以让我们假设 79 是 40% 的参数。我可以这样做吗:
for param in list(bert.parameters())[-79:]: # total trainable 199 Params: 79 is 40%
param.requires_grad = False
我认为它会冻结前 60% 的层。
另外,谁能告诉我它会根据架构冻结哪些层?
【问题讨论】:
标签: deep-learning nlp pytorch torch huggingface-transformers