Note-模型复杂度分析和mmlab实验测试

2024-01-30 00:28

本文主要是介绍Note-模型复杂度分析和mmlab实验测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

FLOPS:(floating-point operations per second)的缩写。“每秒浮点运算次数”,“每秒峰值速度”是“每秒所执行的浮点运算次数”。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。
FLOPs:乘加次数,计算量对应时间复杂度
例如:
f l o p s c o v = h ∗ w ∗ k 2 ∗ c i n ∗ c o u t f l o p s d o w n s a m p l e = 0 f l o p s f c = w e i g h t i n ∗ w e i g h t o u t flops_{cov} = h*w*k^2*c_{in}*c_{out}\newline flops_{downsample} = 0\newline flops_{fc} = weight_{in}*weight_{out} flopscov=hwk2cincoutflopsdownsample=0flopsfc=weightinweightout
params:参数量对应于我们之前的空间复杂度,参数量影响显存
p a r a m s c o v = k 2 ∗ c i n ∗ c o u t 考虑 b i a s : p a r a m s c o v = ( k 2 ∗ c i n + 1 ) ∗ c o u t p a r a m s d o w n s a m p l e = 0 p a r a m s f c = w e i g h t i n ∗ w e i g h t o u t params_{cov} = k^2*c_{in}*c_{out}\newline 考虑bias:params_{cov} = (k^2*c_{in}+1)*c_{out}\newline params_{downsample} = 0\newline params_{fc} = weight_{in}*weight_{out} paramscov=k2cincout考虑bias:paramscov=(k2cin+1)coutparamsdownsample=0paramsfc=weightinweightout
参数量:即模型中需要学习的参数数量,它是衡量模型复杂度的另一个重要指标。模型的参数量越多,表示模型的表达能力越强,但也意味着模型需要更多的计算资源和数据来训练和推断。比如,在训练模型时需要更多的GPU内存,推断时需要更多内存来存储模型参数。
显存=模型自身的参数(params)+模型计算产生的中间变量(memory)

实验测试:

利用mmengine工程进行实验:

import torchvision
from mmengine.analysis import get_model_complexity_infoif __name__ == '__main__':resnet = torchvision.models.resnet18()input_shape = (3, 224, 224)analysis_results = get_model_complexity_info(resnet, input_shape)# 对于第一卷积层params1 = 7 * 7 * 3 * 64flops1 = 7 * 7 * 3 * 64 * 224 / 2 * 224 / 2activations = 64 * 112 * 112print('params={}K,params={}G,activations={}M'.format(params1 / pow(10.0, 3), flops1 / pow(10.0, 9),activations / pow(10.0, 6)))print(analysis_results['out_table'])pass

验证自己计算和mmengine打印结果是一样的

这篇关于Note-模型复杂度分析和mmlab实验测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/658598

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}