# Given an input of shape $(3, 32, 32)$, which is convolved with a $(3 \times 3)$ kernel, how do I calculate the FLOPS?

I have an input tensor of shape $$\mathbf{(3, 32, 32)}$$ consisting of 3 channels, 16 rows, and 16 columns. I want to convolve the input tensor using $$\mathbf{(3 \times 3)}$$ kernel/filter. How can I calculate the required FLOPs?

• FLOPs required to compute it Aug 11, 2021 at 8:53
• First, do you know what a FLOP is? Aug 11, 2021 at 8:54
• Floating point operations Aug 11, 2021 at 9:11
• And do you know how to calculate the output? If you know how to calculate the output, you should be able to count the FLOPs in the calculation. Aug 11, 2021 at 9:13
• I don't know how to. That's why I asked the question Aug 11, 2021 at 9:14

## 1 Answer

Each output pixel channel is a 3x3x3 filter, so 27 inputs which get multiplied by 27 weights and then added together. This is 27 FMA (fused-multiply-add) operations, or 27 multiply operations and 26 additions. I believe all modern devices implement FMA.

The number of output pixel channels is 30x30x3 = 2700 (as a 3x3 kernel shaves off one pixel on each edge) and each one takes 27 operations to calculate. So that's 72900 operations in total.