1. 模型尺寸与参数量
根据神经网络模型中的参数数量估计模型体积的大小涉及多个考虑因素,包括参数的数据类型、每种数据类型的存储要求以及存储模型结构或元数据的任何额外开销。下面是估计模型大小的一般方法:
1.1.数据类型
神经网络参数通常存储为浮点数(例如,32 位浮点数)。但是,某些模型可能会使用较低精度的格式,例如 16 位浮点数,甚至是 8 位整数来量化模型。
存储要求:确定所选数据类型的存储要求。例如:
32-bit floats:.32 位浮点数:每个参数需要 4 个字节的存储空间。
16-bit floats:16 位浮点数:每个参数需要 2 个字节的存储空间。
8-bit integers: .8 位整数:每个参数需要 1 个字节的存储空间。
参数量:计算神经网络模型中的参数总数。这包括所有层的权重和偏差。
1.2 计算模型大小
.计算大小:将参数数量乘以所选数据类型的存储要求,得到模型的总大小(以字节为单位)。
Model size (bytes)=Number of parameters×Storage per parameter (bytes)
记住,这是一个基本估计值,实际大小可能会因模型压缩技术、稀疏表示以及存储模型结构或元数据所需的任何额外开销等因素而有所不同。
例如,如果您有一个包含 100 万个参数的神经网络,并且您使用的是 32 位浮点数,则估计大小:
Model size=1,000,000×4 bytes=4,000,000 bytes
1.3 转换成以M 为单位
当然,如果您的模型以 32 位浮点格式存储,并且您希望以兆字节 (MB) 为单位表示大小,则可以使用以下步骤:
-
确定神经网络模型中的参数数。
-
将参数数乘以每个参数的存储(32 位浮点数为 4 个字节)。
-
将结果除以 2 20 2^{20} 220将字节转换为兆字节;
例如,如果您有一个包含 100 万个参数的神经网络,并且您使用的是 32 位浮点数,则估计大小:
M o d e l s i z e ( M B ) = N u m b e r o f p a r a m e t e r s × 4 2 20 Model size (MB)= \frac{Number of parameters×4}{2^{20}} Modelsize(MB)=220Numberofparameters×4
,
M o d e l s i z e ( M B ) = 1000000 × 4 1048576 Model size (MB)= \frac{100 0000 ×4}{1048576} Modelsize(MB)=10485761000000×4,
M o d e l s i z e ( M B ) = 3.814 M B Model size (MB)= 3.814MB Modelsize(MB)=3.814MB
1.4 常用基础模型权重参数
一些基础网络模型可在pytorch 官方查询,
如分类, 分割, 检测任务则去这里查询:
·https://pytorch.org/vision/main/models.html#classification·
点击模型,可以查看具体参数:
而对于自然语言处理,rnn, Lstm, bert, Transformer 等模型, 则可以到Hugging Face 中查询:
https://huggingface.co/models?sort=trending
在其 Model Card, 或者Files and versions 中 可以查询到 Model size,计算其中的参数,
2. 测试模型
使用该仓库, 计算各个模型的参数量;
https://github.com/Lyken17/pytorch-OpCounter
pip install thop