PaddleDetection icon indicating copy to clipboard operation
PaddleDetection copied to clipboard

PP-YOLOE实际模型参数量比模型库中给出大很多

Open L-lei opened this issue 2 years ago • 2 comments

问题确认 Search before asking

  • [X] 我已经搜索过问题,但是没有找到解答。I have searched the question and found no related answer.

请提出你的问题 Please ask your question

您好,我的问题是: 在pp-yoloe模型库地址中PP-YOLOE+_s / PP-YOLOE+_m / PP-YOLOE+_l / PP-YOLOE+_x的Params(M)参数量分别是7.93 / 23.43 / 52.20 / 98.42,但是给出的下载地址中模型大小确是31M / 80多M / 200多M / 300多M pp-yoloe模型库地址

尝试方向1,类别数量过大导致的模型大?使用PP-YOLOE+_m训练类别数量为1的模型,导出推理模型后模型大小为91.1M; 尝试方向2,ppyoloe版本与ppyoloe_plus版本的参数量不同?使用ppyoloe_crn_m_300e与ppyoloe_plus_crn_m_80e训练同一个数据集,导出推理模型也是91.1M, 2个版本的模型大小相同; 尝试方向3,模型枝剪?使用配置文件提供ppyoloe_plus_crn_m_80e的模型枝剪运行直接内部错误; 尝试方向4,模型量化,量化最大缩减模型4倍,模型库中给出的参数量23.43*4=93.72,差不多吻合?使用ppyoloe_plus_crn_m_80e模型在线量化训练,导出的量化训练模型大小与原模型大小几乎相同,在cpu量化文档模型转换后模型大小为90.09M,模型减少了1.02M; 尝试方向5,静态图模型与动态图模型区别?在量化转换的时候,脚本代码是基于静态图实现;

请问下,这是如何实现的呢?能将模型缩小到模型库中给出的呢

L-lei avatar Jan 03 '23 02:01 L-lei

模型参数量 不等于 保存的权重的大小。如果模型以float32保存,那么根据float32占4个字节,可以推算出保存的权重约等于模型参数量的4倍,依此类推

wangxinxin08 avatar Jan 03 '23 03:01 wangxinxin08

明白了,模型库中模型参数量是参数个数;但是这样也有一个问题,在尝试方向4量化的时候选择的int8类型占1个字节,导出后模型大小几乎没怎么缩减,是因为paddle中模型参数保存格式是float32?如原本量化后值为5,存储的时候5.0000...

L-lei avatar Jan 03 '23 05:01 L-lei