transformers里的BertModel之架构和参数统计

这篇具有很好参考价值的文章主要介绍了transformers里的BertModel之架构和参数统计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 BertModel的架构:

以bert-base-chinese为例:

model = BertModel.from_pretrained("../model/bert-base-chinese")

transformers里的BertModel之架构和参数统计,python,人工智能,transformers,python,transformer

统计模型参数:

# 参数量的统计
total_params = 0 # 模型总的参数量
total_learnable_params = 0 # 可学习的参数量
total_embedding_params = 0 # embeddings 层的参数量
total_encoder_params = 0 # Encoder编码器部分的参数量
total_pooler_params = 0

for name , param  in model.named_parameters():
    print(name , "->" , param.shape)
    if param.requires_grad:
        total_learnable_params += param.numel()
    if "embedding" in name :
        total_embedding_params += param.numel()
    if "encoder" in name :
        total_encoder_params += param.numel()
    if "pooler" in name :
        total_pooler_params += param.numel()
        
    total_params += param.numel()

transformers里的BertModel之架构和参数统计,python,人工智能,transformers,python,transformer

从上面可以看出:

embedding层占比 0.16254008305735163

Encoder编码器部分占比 0.8316849528014959

pooler层占比 0.005774964141152439

总共的参数:102267648

返回值分析:

关于BertModel的文档如下:

BERTWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://huggingface.co/docs/transformers/main/en/model_doc/bert#transformers.BertModel这里进步详细解释一下:

transformers里的BertModel之架构和参数统计,python,人工智能,transformers,python,transformer

 last_hidden_state 、 pooler_output 必定会返回的,而hidden_state是在model设置output_hidden_states=True 或者config.output_hidden_states=True的时候进行返回的。

transformers里的BertModel之架构和参数统计,python,人工智能,transformers,python,transformer

transformers里的BertModel之架构和参数统计,python,人工智能,transformers,python,transformer

 这里说明一下:

outputs的长度为3:

# outputs[0] == last_hidden_state : (batch_size, sequence_length, hidden_size)

# outputs[1] == pooler_output : (batch_size, hidden_size)

# outputs[2] == hidden_state : (batch_size, sequence_length, hidden_size)

transformers里的BertModel之架构和参数统计,python,人工智能,transformers,python,transformer

transformers里的BertModel之架构和参数统计,python,人工智能,transformers,python,transformer

 从上图中可以看出:

model.embeddings(input_tensor) == outputs[2][0]文章来源地址https://www.toymoban.com/news/detail-622132.html

到了这里,关于transformers里的BertModel之架构和参数统计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包