1
$\begingroup$

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?

$\endgroup$
7
  • $\begingroup$ FLOPs required to compute it $\endgroup$
    – Mhasan502
    Aug 11 at 8:53
  • $\begingroup$ First, do you know what a FLOP is? $\endgroup$
    – user253751
    Aug 11 at 8:54
  • $\begingroup$ Floating point operations $\endgroup$
    – Mhasan502
    Aug 11 at 9:11
  • $\begingroup$ 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. $\endgroup$
    – user253751
    Aug 11 at 9:13
  • $\begingroup$ I don't know how to. That's why I asked the question $\endgroup$
    – Mhasan502
    Aug 11 at 9:14
1
$\begingroup$

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.