神经网络模型的参数量和FlOPS

这篇具有很好参考价值的文章主要介绍了神经网络模型的参数量和FlOPS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、FLOPS、FLOPs和GFLOPs的概念


FLOPS:注意S是大写,是 “每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。
FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。
GFLOPs:一个GFLOPs等于每秒十亿(=10^9)次的浮点运算。

1.卷积层

参数量:

params = C_in×(C_out×K×K +1)
其中,Co代表输入的通道数,Ci代表输出的通道数,K为卷积核的大小,若卷积核有偏置项(Bias)则+1.

flops:
FLOPs = [C_in×K×K+(C_in×K×K-1) +1]×W×H×C_out
其中C_in×K×K为一次卷积的乘法预算的计算量,C_in×K×K-1为一次卷积加法运算的计算量,+1为偏置项,W与H为特征图(feture map)的长和宽。
可简化为:
FLOPs = 2×C_in×K×K×W×H×C_out
计算机视觉中常把一次乘法和加法合在一起,所以可以去掉前面乘的2。

2.池化层

参数量:

        深度学习中,参数量一般是指随着训练可以不断进行自我调节大小的参数的数量。而池化层主要是用来采样,例如:最大池化,取一个filter中的最大值。所以池化层可以不用算参数量。

flops:

gflops,其他,神经网络,深度学习,人工智能,计算机视觉

3.全连接层

参数量
params = gflops,其他,神经网络,深度学习,人工智能,计算机视觉
flops:
FLOPs =gflops,其他,神经网络,深度学习,人工智能,计算机视觉
乘法次数为,加法次数为,+1为加上一个偏置项,输入矩阵维度为 

计算机视觉中常把一次乘法和加法合在一起,所以可以去掉前面乘的2。

4.BN层

gflops,其他,神经网络,深度学习,人工智能,计算机视觉

Flops 

gflops,其他,神经网络,深度学习,人工智能,计算机视觉

计算机视觉中常把一次乘法和加法合在一起,所以可以去掉前面乘的2。

 5.Transformer

transformer的Flops为:

对q,k,v的全连接层:。N为token数(N=H*W)。

q,k点乘:num_heads * N * (dim // num_heads) * N

再点乘v:num_heads * N * N * (dim // num_heads)

FFN层:2 * N * dim * dim * self.mlp_ratio

6.LayerNorm

        elementwise_affine如果设为False,则LayerNorm层不含有任何可学习参数。如果设为True(默认是True)则会包含可学习参数weight和bias,用于仿射变换,即对输入数据归一化到均值0方差1后,乘以weight,即bias。

由于LayerNorm默认在dim最后一维进行归一化,因此,参数量为N*2,N表示token数(N=H*W)

gflops,其他,神经网络,深度学习,人工智能,计算机视觉

 FLOPS:和BN的原理一样,进行一次乘法一次加法,因此,计算量为2*N*dim(N=H*W),计算机视觉中常把一次乘法和加法合在一起,所以可以去掉前面乘的2。

 文章来源地址https://www.toymoban.com/news/detail-787789.html

到了这里,关于神经网络模型的参数量和FlOPS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 神经网络基础-神经网络补充概念-37-其他正则化方法

    L1 正则化(Lasso Regularization):L1 正则化通过在损失函数中添加参数的绝对值之和作为惩罚项,促使部分参数变为零,实现特征选择。适用于稀疏性特征选择问题。 L2 正则化(Ridge Regularization):L2 正则化通过在损失函数中添加参数的平方和作为惩罚项,使得参数值保持较小

    2024年02月12日
    浏览(29)
  • 深度学习基础入门篇[8]::计算机视觉与卷积神经网络、卷积模型CNN综述、池化讲解、CNN参数计算

    计算机视觉作为一门让机器学会如何去“看”的学科,具体的说,就是让机器去识别摄像机拍摄的图片或视频中的物体,检测出物体所在的位置,并对目标物体进行跟踪,从而理解并描述出图片或视频里的场景和故事,以此来模拟人脑视觉系统。因此,计算机视觉也通常被叫

    2024年02月05日
    浏览(62)
  • 在树莓派上实现numpy的LSTM长短期记忆神经网络做图像分类,加载pytorch的模型参数,推理mnist手写数字识别

    这几天又在玩树莓派,先是搞了个物联网,又在尝试在树莓派上搞一些简单的神经网络,这次搞得是LSTM识别mnist手写数字识别 训练代码在电脑上,cpu就能训练,很快的: 然后需要自己在dataset里导出一些图片:我保存在了mnist_pi文件夹下,“_”后面的是标签,主要是在pc端导出

    2024年02月07日
    浏览(27)
  • bp神经网络参数怎么设置,神经网络参数个数计算

    神经网络各个网络参数设定原则:①、网络节点  网络输入层神经元节点数就是系统的特征因子(自变量)个数,输出层神经元节点数就是系统目标个数。隐层节点选按经验选取,一般设为输入层节点数的75%。 如果输入层有7个节点,输出层1个节点,那么隐含层可暂设为5个节点

    2024年02月06日
    浏览(39)
  • PyTorch入门学习(十一):神经网络-线性层及其他层介绍

    目录 一、简介 二、PyTorch 中的线性层 三、示例:使用线性层构建神经网络 四、常见的其他层 一、简介 神经网络是由多个层组成的,每一层都包含了一组权重和一个激活函数。每层的作用是将输入数据进行变换,从而最终生成输出。线性层是神经网络中的基本层之一,它执

    2024年02月05日
    浏览(33)
  • 在树莓派上实现numpy的conv2d卷积神经网络做图像分类,加载pytorch的模型参数,推理mnist手写数字识别,并使用多进程加速

    这几天又在玩树莓派,先是搞了个物联网,又在尝试在树莓派上搞一些简单的神经网络,这次搞得是卷积识别mnist手写数字识别 训练代码在电脑上,cpu就能训练,很快的: 然后需要自己在dataset里导出一些图片:我保存在了mnist_pi文件夹下,“_”后面的是标签,主要是在pc端导

    2024年02月07日
    浏览(24)
  • 神经网络:参数更新

    在计算机视觉中,参数更新是指通过使用梯度信息来调整神经网络模型中的参数,从而逐步优化模型的性能。参数更新的作用、原理和意义如下: 1. 作用: 改进模型性能:参数更新可以使模型更好地适应训练数据,提高模型的预测准确性。 减小损失函数:通过调整参数,可

    2024年02月10日
    浏览(27)
  • 如何计算神经网络参数的个数?

    目录 1. 卷积层 2. 分类层 3. 计算 LeNet 网络的参数个数 神经网络随着层数的加深,网络参数的个数会越来越多,小的网络有成千上万个参数,大的可以达到千万个网络参数。 所以应该如何计算神经网络参数的个数? 图像分类的神经网络,包含两个部分: 特征提取层+ 分类层

    2024年02月06日
    浏览(32)
  • 神经网络 03(参数初始化)

    对于某一个神经元来说 ,需要初始化的参数有两类:一类是权重W,还有一类是偏置b,偏置b初始化为0即可。而权重W的初始化比较重要,我们着重来介绍常见的初始化方式。 (1)随机初始化 随机初始化从均值为 0,标准差是 1 的高斯分布(也叫正态分布)中取样,使用一些

    2024年02月09日
    浏览(37)
  • 神经网络中参数与超参数的区别是什么?

    在神经网络中,参数和超参数是两个非常重要但概念上不同的元素。它们的主要区别在于它们在模型训练和构建中的角色和如何被确定。 参数(Parameters) 定义:参数是神经网络在训练过程中学习的变量。这些包括权重(weights)和偏差(biases)。 确定方式:参数是通过训练

    2024年01月22日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包