【CNN】卷积神经网络的计算量

如果有问题请指教!
首先你要知道卷积神经网络的计算过程,这里不再赘述,下面的图分别来自邱锡鹏老师的书(https://nndl.github.io/)和李沐大神的直播课,最重要的是这句:每个输入通道有独立的二维卷积核,所有输入通道结果相加得到一个输出通道结果;每个输出通道有独立的三维卷积核。
【CNN】卷积神经网络的计算量_第1张图片
【CNN】卷积神经网络的计算量_第2张图片

相关变量
输入 ( B , C i n , H , W ) (B,C_{in},H,W) (B,Cin,H,W)
卷积核 ( C o , C i n , K , s t r i d e = S , p a d d i n g = P ) (C_o,C_{in},K,stride=S,padding=P) (Co,Cin,K,stride=S,padding=P)
输出 ( B , C o , ( H i n p u t − H k e r n e l + 2 P S + 1 ) , ( W i n p u t − W k e r n e l + 2 P S + 1 ) ) = ( B , C O , ( H − K + 2 P S + 1 ) , ( W − K + 2 P S + 1 ) (B,C_o,(\frac{H_{input}-H_{kernel}+2P}S+1),(\frac{W_{input}-W_{kernel}+2P}S+1))=(B,C_O,(\frac{H-K+2P}S+1),(\frac{W-K+2P}S+1) B,Co,(SHinputHkernel+2P+1)(SWinputWkernel+2P+1)=B,CO,(SHK+2P+1)(SWK+2P+1) 这里2P还是P看个人习惯哈~

  1. 单次卷积的计算量——生成输出的一个元素:如图1,需要执行 K 2 K^2 K2次乘法、 K 2 − 1 K^2-1 K21次加法,总计: 2 K 2 − 1 2K^2-1 2K21
  2. 单输入通道的计算量:如图2,根据输出的大小,可知输出 ( H − K + 2 P S + 1 ) ∗ ( W − K + 2 P S + 1 ) (\frac{H-K+2P}S+1)*(\frac{W-K+2P}S+1) (SHK+2P+1)(SWK+2P+1)个元素,即执行 ( H − K + 2 P S + 1 ) ∗ ( W − K + 2 P S + 1 ) (\frac{H-K+2P}S+1)*(\frac{W-K+2P}S+1) (SHK+2P+1)(SWK+2P+1)卷积计算(不是计算量!);
  3. 单输出通道多输入通道的计算量:如图2,需要执行 C i n ∗ ( H − K + 2 P S + 1 ) ∗ ( W − K + 2 P S + 1 ) C_{in}*(\frac{H-K+2P}S+1)*(\frac{W-K+2P}S+1) Cin(SHK+2P+1)(SWK+2P+1)卷积计算,还需将对应位置元素相加—— ( C i n − 1 ) ∗ ( H − K + 2 P S + 1 ) ∗ ( W − K + 2 P S + 1 ) (C_{in}-1)*(\frac{H-K+2P}S+1)*(\frac{W-K+2P}S+1) (Cin1)(SHK+2P+1)(SWK+2P+1),总计: C i n ∗ ( H − K + 2 P S + 1 ) ( W − K + 2 P S + 1 ) ∗ ( 2 K 2 − 1 ) + ( C i n − 1 ) ∗ ( H − K + 2 P S + 1 ) ∗ ( W − K + 2 P S + 1 ) C_{in}*(\frac{H-K+2P}S+1)(\frac{W-K+2P}S+1)*(2K^2-1)+(C_{in}-1)*(\frac{H-K+2P}S+1)*(\frac{W-K+2P}S+1) Cin(SHK+2P+1)(SWK+2P+1)(2K21)+(Cin1)(SHK+2P+1)(SWK+2P+1)
  4. 多输出通道的计算量:需要执行 C o C_o Co次3的操作,最后的计算量: C o [ C i n ( H − K + 2 P S + 1 ) ( W − K + 2 P S + 1 ) ( 2 K 2 − 1 ) + ( C i n − 1 ) ( H − K + 2 P S + 1 ) ( W − K + 2 P S + 1 ) ] C_o[C_{in}(\frac{H-K+2P}S+1)(\frac{W-K+2P}S+1)(2K^2-1)+(C_{in}-1)(\frac{H-K+2P}S+1)(\frac{W-K+2P}S+1)] Co[Cin(SHK+2P+1)(SWK+2P+1)(2K21)+(Cin1)(SHK+2P+1)(SWK+2P+1)]
  5. 多样本: B C o [ C i n ( H − K + 2 P S + 1 ) ( W − K + 2 P S + 1 ) ( 2 K 2 − 1 ) + ( C i n − 1 ) ( H − K + 2 P S + 1 ) ( W − K + 2 P S + 1 ) ] BC_o[C_{in}(\frac{H-K+2P}S+1)(\frac{W-K+2P}S+1)(2K^2-1)+(C_{in}-1)(\frac{H-K+2P}S+1)(\frac{W-K+2P}S+1)] BCo[Cin(SHK+2P+1)(SWK+2P+1)(2K21)+(Cin1)(SHK+2P+1)(SWK+2P+1)]

你可能感兴趣的:(DL基础,cnn,深度学习,机器学习)