:)深度学习模型如何统计params量-|
:)深度学习模型如何统计params量-|
链接:深度学习中模型计算量(FLOPs)和参数量(Params)的理解以及四种计算方法总结 (itvuer.com)
大概有params, summary,以及第三方库
还可以直接统计 参数量对计算量的影响 ,能直接统计占用算力资源
from thop import profile
1 大概统计
已知模型大小,如312M
计算为 312 00 0000 Bytes,
浮点数据 一个参数占4个字节,
import transformers import torch import os from transformers import GPT2TokenizerFast, GPT2LMHeadModel, GPT2Config from transformers import BertTokenizerFast model_path10 = r"/home/arm/disk_arm_8T/xiaoliu/AI610-SDK-r1p0-00eac0/GPT2_chinese_chat/GPT2-chitchat/model_bs1/min_ppl_model_bs1_lay10" model_path20 = r"/home/arm/disk_arm_8T/xiaoliu/AI610-SDK-r1p0-00eac0/GPT2_chinese_chat/GPT2-chitchat/model_chat1to6_bs8_lay20/min_ppl_model" modelyuan = "/home/arm/disk_arm_8T/xiaoliu/AI610-SDK-r1p0-00eac0/GPT2_chinese_chat/GPT2-chitchat/model_20wfrom100w/min_ppl_model" model = GPT2LMHeadModel.from_pretrained(modelyuan) # update param tol = sum((p.numel() for p in model.parameters())) # unupdate param buftol = sum((p.numel() for p in model.buffers())) print("update params ===>", tol) print("not update params ===>", buftol) print("total ===> ", tol+buftol)
则计算参数量为312 00 0000 /4 = 78000000 个参数
2 精确计算
已知模型大小,如312M
则 模型中存在parameters() 更新的参数
模型buffers 未作更新 的 那部分参数
两部分相加就是参数总数