智能故障诊断的深度学习模型复杂度指标计算(MACs、Params)

本文深入探讨了智能故障诊断中模型复杂度的重要性,详细介绍了时间复杂度和空间复杂度,包括FLOPS与FLOPs的概念,并在Pytorch框架下分析了MobileNetV2和ViT(Vision Transformer)模型的计算量,提供了相关工具的使用案例。
摘要由CSDN通过智能技术生成

引言:
对于智能故障诊断任务而言,受限于现场工业设备设施的算力,模型在轻量化上具有典型需求。因此,在保证模型精准性的同时尽量降低模型的复杂度是必要的,本博客对模型的复杂度概念进行了剖析,并在pytorch框架下对相关热门轻量级模型的复杂度评估进行了分析。
在这里插入图片描述


1. 模型的时间复杂度和空间复杂度

总体上,模型复杂度通常是指前向过程的计算量(反映模型所需要的计算时间)和参数个数(反映模型所需要的计算机内存空间)等等指标,在类型上可划分为时间复杂度和空间复杂度。

1.1 时间复杂度

  • 单个模型单次运行复杂度:可使用浮点运算数 FLOPs计算复杂度

  • 并行性能评估:另外并行性也会影响模型运行速度,可使用最大顺序操作数 Minimum number of sequential operations 和吞吐量 Throughput (image/s) 以及推理时间 Inference time (bacth/ms) 衡量

深度学习算法的复杂度分析主要关注模型计算和存储资源的需求。深度学习算法中最常见的复杂度分析是针对神经网络模型计算复杂度和存储复杂度。 1. 计算复杂度计算复杂度主要关注前向传播和反向传播过程中的计算量。前向传播是指将输入数据通过神经网络进行推理或预测的过程,而反向传播是指根据预测结果和实际标签进行参数更新的过程。 前向传播过程的计算复杂度取决于网络的层数、层的神经元数量和神经元之间的连接情况。常见的计算复杂度表示方法是浮点运算次数(FLOPs)或乘法-加法运算次数(MACs)。 反向传播过程的计算复杂度也与网络的层数、神经元数量和连接情况相关,但通常比前向传播复杂度高,因为需要计算梯度并更新参数。反向传播的计算复杂度通常与前向传播的计算复杂度相当。 2. 存储复杂度:存储复杂度主要关注模型参数和中间结果的存储需求。模型参数是指神经网络中的权重和偏置,而中间结果是指在前向传播和反向传播过程中产生的临时变量。 模型参数的存储需求取决于网络的层数和每层的神经元数量。通常,模型参数是以浮点数形式存储的,所以存储复杂度可以通过参数数量和每个参数的字节数来估计。 中间结果的存储需求取决于网络的层数、每层的神经元数量和数据类型。在深度学习中,中间结果通常是以张量(tensor)形式存储的,所以存储复杂度可以通过中间结果的维度、数据类型和字节数来估计。 需要注意的是,深度学习算法的复杂度分析并不像传统算法那样严格,因为深度学习算法中存在许多不确定性因素,如批量大小、激活函数、优化器等。因此,在实际应用中,更常见的做法是通过实验或模型推理工具来估计深度学习算法的复杂度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Robo-网络矿产提炼工

你的鼓励将是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值