【计算机视觉】GFLOPs、FLOPS和FLOPs的区别和联系(含代码示例)

这篇具有很好参考价值的文章主要介绍了【计算机视觉】GFLOPs、FLOPS和FLOPs的区别和联系(含代码示例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


这三个概念其实都差不多,都涉及浮点运算,但是还是有一些小的不同之处,下面简单总结一下:

一、GFLOPs、FLOPs、FLOPS

GFLOPS 就是 Giga Floating-point Operations Per Second,即每秒10亿次的浮点运算数,常作为GPU性能参数但不一定代表GPU的实际表现,因为还要考虑具体如何拆分多边形和像素、以及纹理填充,理论上该数值越高越好。1GFLOPs = 1 0 9 10^9 109FLOPs。

FLOPs 是floating point of operations的缩写,是浮点运算次数,可以用来衡量算法/模型复杂度。常用当然还有GFLOPs和TFLOPs

FLOPS (全部大写)是floating-point operations per second的缩写,意指每秒浮点运算次数。用来衡量硬件的性能。

二、单位换算

  • MFLOPS(megaFLOPS):等于每秒一百万(= 1 0 6 10^6 106)次的浮点运算
  • GFLOPS(gigaFLOPS):等于每秒十亿(= 1 0 9 10^9 109)次的浮点运算
  • TFLOPS(teraFLOPS):等于每秒一万亿(= 1 0 12 10^{12} 1012)次的浮点运算,(1太拉)
  • PFLOPS(petaFLOPS):等于每秒一千万亿(= 1 0 15 10^{15} 1015)次的浮点运算
  • EFLOPS(exaFLOPS):等于每秒一百京(= 1 0 18 10^{18} 1018)次的浮点运算
  • ZFLOPS(zettaFLOPS):等于每秒十万京(= 1 0 21 10^{21} 1021)次的浮点运算

三、如何计算FLOPs

其中就是指计算量的大小,表示FLOPs。对于卷积层而言,FLOPs计算公式如下:

FLOPs = 2 H W ( C i n K 2 + 1 ) C o u t \text{FLOPs}=2HW(C_{in}K^2+1)C_{out} FLOPs=2HW(CinK2+1)Cout
其中的 C i n C_{in} Cin是指卷积层输入tensor的通道数, C o u t C_{out} Cout指的是卷积层输出tensor的通道数。 K K K指的是卷积核大小。

而后把常数项去掉,简化操作:
FLOPs = H W ( C i n K 2 ) C o u t \text{FLOPs}=HW(C_{in}K^2)C_{out} FLOPs=HW(CinK2)Cout
而在实际中,我们不可能自己计算FLOPs,所以,有相关计算FLOPs的三方库,一个是torchstat,一个是thop。

经过测试,基本上两个可以对齐的,任意选择一个就好。

四、计算示例

我们使用thop库来计算resnet50模型的计算量:

import torch
from thop import profile
from torchvision.models import resnet50

model = resnet50()
input1 = torch.randn(4, 3, 224, 224) 
flops, params = profile(model, inputs=(input1, ))
print('FLOPs = ' + str(flops / 1000 ** 3) + 'G')

输出结果为:文章来源地址https://www.toymoban.com/news/detail-778525.html

[INFO] Register count_convNd() for <class 'torch.nn.modules.conv.Conv2d'>.
[INFO] Register count_normalization() for <class 'torch.nn.modules.batchnorm.BatchNorm2d'>.
[INFO] Register zero_ops() for <class 'torch.nn.modules.activation.ReLU'>.
[INFO] Register zero_ops() for <class 'torch.nn.modules.pooling.MaxPool2d'>.
[INFO] Register zero_ops() for <class 'torch.nn.modules.container.Sequential'>.
[INFO] Register count_adap_avgpool() for <class 'torch.nn.modules.pooling.AdaptiveAvgPool2d'>.
[INFO] Register count_linear() for <class 'torch.nn.modules.linear.Linear'>.
FLOPs = 16.534970368G

到了这里,关于【计算机视觉】GFLOPs、FLOPS和FLOPs的区别和联系(含代码示例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 神经网络的参数量(Params)和计算量(FLOPs)

    参数量(Params) 参数量是指模型训练中需要训练的参数总数。用来衡量模型的大小(计算空间复杂度)。 计算量(FLOPs) 浮点运算次数,理解为计算量(计算时间复杂度),可以用来衡量算法的复杂度,常用做神经网络模型速度的间接衡量标准(虽然最近已经有文章证明靠FLOPs间接标

    2023年04月16日
    浏览(40)
  • 使用PyTorch构建神经网络,并使用thop计算参数和FLOPs

    FLOPs和FLOPS区别 FLOPs(floating point operations)是指浮点运算次数,通常用来评估一个计算机算法或者模型的计算复杂度。在机器学习中,FLOPs通常用来衡量神经网络的计算复杂度,因为神经网络的计算主要由矩阵乘法和卷积操作组成,而这些操作都可以转化为浮点运算次数的形式

    2024年02月03日
    浏览(44)
  • 【YOLOv5-6.x】模型参数量param及计算量FLOPs解析

    评价一个用深度学习框架搭建的神经网络模型,除了精确度(比如目标检测中常用的map)指标之外,模型复杂度也必须要考虑,通常用正向推理的计算量(FLOPs)和参数个数(Parameters)来描述模型的复杂度。   参数量 有参数的层主要包括: 卷积层 全连接层 BN层 Embedding层 少数激活

    2024年02月04日
    浏览(48)
  • 计算机视觉 计算机视觉识别是什么?

    计算机视觉识别(Computer Vision Recognition)是计算机科学和人工智能领域中的一个重要分支,它致力于使计算机系统能够模拟和理解人类视觉的过程,从而能够自动识别、分析和理解图像或视频中的内容。这一领域的发展旨在让计算机具备视觉感知和理解的能力,使其能够从视

    2024年02月07日
    浏览(55)
  • 计算机视觉框架OpenMMLab(一):计算机视觉基础

    👨‍💻 作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享。 公众号: GoAI的学习小屋,免费分享书籍、简历、导图等资料,更有交流群分享AI和大数据,加群方式公众号回复“加群”或➡️点击链接。 🎉 专栏推

    2024年01月22日
    浏览(55)
  • 计算机视觉(P2)-计算机视觉任务和应用

    在本文中,我们将探讨主要的计算机视觉任务以及每个任务最流行的应用程序。         图像分类是计算机视觉领域的主要任务之一[1]。在该任务中,经过训练的模型根据预定义的类集为图像分配特定的类。下图是著名的CIFAR-10数据集[1],它由十个类别的8000万张图像组成

    2024年02月02日
    浏览(73)
  • 【深度学习: 计算机视觉】如何改进计算机视觉数据集

    机器学习算法需要大量数据集来训练、提高性能并生成组织所需的结果。 数据集是计算机视觉应用程序和模型运行的燃料。数据越多越好。这些数据应该是高质量的,以确保人工智能项目获得最佳的结果和产出。 获取训练机器学习模型所需数据的最佳方法之一是使用开源数

    2024年02月20日
    浏览(48)
  • int8,FLOPS,FLOPs,TOPS 等具体含义

    算力的计量单位FLOPS(Floating-point operations per second),FLOPS表示每秒浮点的运算次数。具体使用时,FLOPS前面还会有一个字母常量,例如TFLOPS、PFLOPS。这个字母T、P代表次数,T代表每秒一万亿次,P代表每秒一千万亿次。 除了运算次数,衡量算力水平时还要看算力精度。例如,

    2024年02月04日
    浏览(36)
  • 什么是计算机视觉,计算机视觉的主要任务及应用

    目录 1. 什么是计算机视觉 2. 计算机视觉的主要任务及应用 2.1 图像分类 2.1.1 图像分类的主要流程 2.2 目标检测 2.2.1 目标检测的主要流程 2.3 图像分割 2.3.1 图像分割的主要流程 2.4 人脸识别 2.4.1 人脸识别的主要流程 对于我们人类来说,要想认出身边的一个人,首先需要

    2024年02月11日
    浏览(46)
  • 计算机毕业设计选题-最新最全机器视觉 计算机视觉选题推荐汇总

      大四是整个大学期间最忙碌的时光,一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整理了机器视觉,计算机视觉不同方向最新精选选题,如对选题有任何疑问,都可以问学长哦! 以下是学长精心整

    2024年02月06日
    浏览(70)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包