引言:
对于智能故障诊断任务而言,受限于现场工业设备设施的算力,模型在轻量化上具有典型需求。因此,在保证模型精准性的同时尽量降低模型的复杂度是必要的,本博客对模型的复杂度概念进行了剖析,并在pytorch框架下对相关热门轻量级模型的复杂度评估进行了分析。
深度学习模型的复杂度指标计算
1. 模型的时间复杂度和空间复杂度
总体上,模型复杂度通常是指前向过程的计算量(反映模型所需要的计算时间)和参数个数(反映模型所需要的计算机内存空间)等等指标,在类型上可划分为时间复杂度和空间复杂度。
1.1 时间复杂度
-
单个模型单次运行复杂度:可使用浮点运算数 FLOPs计算复杂度
-
并行性能评估:另外并行性也会影响模型运行速度,可使用最大顺序操作数 Minimum number of sequential operations 和吞吐量 Throughput (image/s) 以及推理时间 Inference time (bacth/ms) 衡量
1.2 空间复杂度
- 参数量 Parameters, 比如深度学习模型张量的权重数量等等
- 数据位数 Data bits:这个主要指的模型采用哪种精度数据进行前向、反向传播,比如32位、16位;一些边缘计算设备会采用8bit的计算方式;