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

1 Answer 1

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$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .