卷积神经网络复杂度分析(时间复杂度,空间复杂度)

原文:https://blog.csdn.net/laolu1573/article/details/79196160

复杂度对模型的影响

  • 时间复杂度决定了模型的训练/预测时间。如果复杂度过高,会导致模型训练和预测耗费大量时间,既无法快速的验证想法和改善模型,也无法做到快速的预测。
  • 空间复杂度决定了模型的参数数量。由于维度灾难的限制,模型的参数越多,训练模型所需的数据量就越大,而现实生活中的数据集通常不会太大,这会导致模型的训练更容易过拟合。

时间复杂度

时间复杂度即模型的运算次数。

单个卷积层的时间复杂度:Time~O(M^2 * K^2 * Cin * Cout)

注1:为了简化表达式中的变量个数,这里统一假设输入和卷积核的形状都是正方形。 

注2:严格来讲每层应该还包含1个Bias参数,这里为了简洁就省略了。

M:输出特征图(Feature Map)的尺寸。
K:卷积核(Kernel)的尺寸。
Cin:输入通道数。
Cout:输出通道数。


输出特征图尺寸又由输入尺寸X、卷积核尺寸K、Padding、 Stride 这四个参数所决定,表示如下: 

M=(X - K + 2*Padding) / Stride + 1

空间复杂度

空间复杂度即模型的参数数量,体现为模型本身的提及。

Space~O(K^2 * Cin * Cout) 

-空间复杂度只与卷积核的尺寸K、通道数C相关。而与输入图片尺寸无关。

-当我们需要裁剪模型时,由于卷积核的尺寸通常已经很小,而网络的深度又与模型的能力紧密相关,不宜过多削减,因此模型裁剪通常最先下手的地方就是通道数。

猜你喜欢

转载自blog.csdn.net/qq_37249672/article/details/80581096