diff --git a/include/aidge/backend/cpu/operator/AvgPoolingImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/AvgPoolingImpl_forward_kernels.hpp
index d6950e11e935a3f6d5548148d1c393a5340af224..8079b6898602ee03f308292af44cf55db6fee3cd 100644
--- a/include/aidge/backend/cpu/operator/AvgPoolingImpl_forward_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/AvgPoolingImpl_forward_kernels.hpp
@@ -91,8 +91,14 @@ void AvgPoolingImpl2D_cpu_forward_kernel(const AvgPooling_Op<2>::Attrs &attrs,
                                 output[oIndexFull] += input[iIndex + (ix+sx)*dims[3] + (iy+sy)];
                             }
                         }
-                        // padding not used
-                        output[oIndexFull] /= (sxMax - sxMin) * (syMax - syMin);
+                        if (std::get<2>(attrs)) {
+                            // count_include_pad is true
+                            output[oIndexFull] /= std::get<1>(attrs)[0] * std::get<1>(attrs)[1];
+                        }
+                        else {
+                            // padding not used
+                            output[oIndexFull] /= (sxMax - sxMin) * (syMax - syMin);
+                        }
                     }
                 }
             }