【发布时间】:2022-01-13 11:32:08
【问题描述】:
我想了解 BertForMaskedLM 模型,在 huggingface github 代码中,BertForMaskedLM 是带有额外 2 个线性层的 bert 模型(输入 768,输出 768)和(输入 768,输出 30522)。所有权重的计数将是 BertModel + 768 * 768 + 768 * 30522 的权重,但是当我检查数字不匹配时。
from transformers import BertModel, BertForMaskedLM
import torch
bertmodel = BertModel.from_pretrained('bert-base-uncased')
bertForMaskedLM = BertForMaskedLM.from_pretrained('bert-base-uncased')
def count_parameters(model):
return sum(p.numel() for p in model.parameters() if p.requires_grad)
count_parameters(bertmodel)
#output 109482240
count_parameters(bertForMaskedLM)
#output 109514298
109482240 + 768 * 768 + 768 * 30522 != 109514298
我做错了什么?
【问题讨论】:
标签: machine-learning deep-learning nlp pytorch bert-language-model