跑完的模型存为best_model.pth文件,怎么可以快速计算该模型的参数量。
第一步,(我选择在pycharm的terminal中)先查看文件的结构:
bash
python -c "import torch; print(list(torch.load('替换模型路径/best_model.pth').keys()))"
解释一下,其中:
torch.load(): 加载PyTorch保存的文件.keys(): 获取文件中的所有键(即保存的内容项)print(list(...)): 打印键的列表
输出示例:
bash
['epoch', 'model', 'optimizer', '...']
# 其中,model代表 模型参数(也可能是:state_dict、model_state_dict)
第二步,基于上述输出结果,从model键中提取模型参数并计算总数:
bash
python -c "import torch; ckpt=torch.load('替换模型路径/best_model.pth'); model_dict=ckpt['model']; total=sum(p.numel() for p in model_dict.values() if isinstance(p, torch.Tensor)); print(f'模型参数量: {total:,} (≈{total*4/1024/1024:.1f} MB)')"
解释一下,其中:
-
ckpt['model']: 获取模型参数字典 -
model_dict.values(): 获取所有参数张量 -
p.numel(): 计算每个张量的元素个数(参数数量) -
isinstance(p, torch.Tensor): 确保是张量类型 -
sum(...): 累加所有参数 -
total*4/1024/1024: 计算模型大小(假设float32,每个参数4字节)
最终输出:
模型参数量:XXX(XXMB)