深度学习模型参数的计算

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) 为单位表示大小,则可以使用以下步骤:

  1. 确定神经网络模型中的参数数。

  2. 将参数数乘以每个参数的存储(32 位浮点数为 4 个字节)。

  3. 将结果除以 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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 04:20:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 04:20:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 04:20:06       87 阅读
  4. Python语言-面向对象

    2024-03-20 04:20:06       96 阅读

热门阅读

  1. Nginx安装教程

    2024-03-20 04:20:06       46 阅读
  2. 【NC15434】wyh的迷宫

    2024-03-20 04:20:06       50 阅读
  3. LeetCode //C - 239. Sliding Window Maximum

    2024-03-20 04:20:06       39 阅读
  4. 5.1.4、【AI技术新纪元:Spring AI解码】Amazon Bedrock

    2024-03-20 04:20:06       35 阅读
  5. 2024.3.19 ARM

    2024-03-20 04:20:06       46 阅读
  6. LeetCode 2864.最大二进制奇数

    2024-03-20 04:20:06       37 阅读
  7. React理念——Fiber架构的主要原理

    2024-03-20 04:20:06       47 阅读
  8. [Vuex]中state状态

    2024-03-20 04:20:06       37 阅读
  9. CSS-DAY1

    2024-03-20 04:20:06       39 阅读
  10. 接口和抽象类的区别

    2024-03-20 04:20:06       38 阅读
  11. 安卓面试题多线程16-20

    2024-03-20 04:20:06       38 阅读