计算ResNet-50的Flops
时间: 2023-06-19 21:07:50 浏览: 446
ResNet-50有50个卷积层,可以计算其Flops如下:
1. 第一层卷积层:输入大小为224x224x3,卷积核大小为7x7,步长为2,输出通道数为64,共有3个通道,因此Flops为:
(7 x 7 x 3 x 64) x (112 x 112) x 2 = 55,296,768
2. 残差块1:包含3个卷积层和一个shortcut,其中每个卷积层的Flops都相同,计算其中一个卷积层的Flops:
- 第一个卷积层:输入大小为56x56x64,卷积核大小为1x1,输出通道数为64,因此Flops为:
(1 x 1 x 64 x 64) x (56 x 56) = 2,359,296
- 第二个卷积层:输入大小为56x56x64,卷积核大小为3x3,输出通道数为64,因此Flops为:
(3 x 3 x 64 x 64) x (56 x 56) = 37,748,736
- 第三个卷积层:输入大小为56x56x64,卷积核大小为1x1,输出通道数为256,因此Flops为:
(1 x 1 x 64 x 256) x (56 x 56) = 37,748,736
- shortcut:输入大小为56x56x64,输出大小为56x56x256,因此Flops为0
因此,整个残差块1的Flops为:
(2 x 2,359,296 + 37,748,736) x 2 = 80,874,240
3. 残差块2、3、4:与残差块1类似,每个残差块的Flops相同,因此整个ResNet-50的Flops为:
(1 x 55,296,768) + (3 x 80,874,240) x 3 = 1,718,719,872
因此,ResNet-50的Flops为1.7 billion。
阅读全文