From 92139a6dc4735749cf0e303779e402cdb1b4d9e6 Mon Sep 17 00:00:00 2001 From: Dmitry Kurtaev Date: Thu, 7 May 2026 21:14:04 +0300 Subject: [PATCH] Enable 1D int8 AvgPool with OpenVINO with 2025.3 --- modules/dnn/src/int8layers/pooling_layer.cpp | 7 +++++++ modules/dnn/test/test_int8_layers.cpp | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/dnn/src/int8layers/pooling_layer.cpp b/modules/dnn/src/int8layers/pooling_layer.cpp index cfd04bd2f4..068963ec43 100644 --- a/modules/dnn/src/int8layers/pooling_layer.cpp +++ b/modules/dnn/src/int8layers/pooling_layer.cpp @@ -296,9 +296,16 @@ public: ov::Shape(pads_begin), ov::Shape(pads_end), ov::Shape(kernel_size), rounding_type, pad_type); } else if (type == AVE) { +#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_GE(2025030000) + std::vector dilations(kernel_size.size(), 1); + pool = std::make_shared(input, ov::Strides(strides), ov::Strides(dilations), + ov::Shape(pads_begin), ov::Shape(pads_end), ov::Shape(kernel_size), + !avePoolPaddedArea, rounding_type, pad_type); +#else pool = std::make_shared(input, ov::Strides(strides), ov::Shape(pads_begin), ov::Shape(pads_end), ov::Shape(kernel_size), !avePoolPaddedArea, rounding_type, pad_type); +#endif } else if (type == SUM) { ov::Shape inpShape = input.get_shape(); CV_Assert(inpShape.size() == 2 + kernel_size.size()); diff --git a/modules/dnn/test/test_int8_layers.cpp b/modules/dnn/test/test_int8_layers.cpp index 9d102937bd..22553dc1a8 100644 --- a/modules/dnn/test/test_int8_layers.cpp +++ b/modules/dnn/test/test_int8_layers.cpp @@ -204,7 +204,10 @@ TEST_P(Test_Int8_layers, AvePooling) if (backend != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) testLayer("layer_pooling_ave", "Caffe", 0.0021, 0.0075); testLayer("ave_pool_same", "TensorFlow", 0.00153, 0.0041); - testLayer("average_pooling_1d", "ONNX", 0.002, 0.0048); +#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_LT(2025030000) + if (backend != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) +#endif + testLayer("average_pooling_1d", "ONNX", 0.002, 0.0048); if (backend != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) testLayer("average_pooling", "ONNX", 0.0014, 0.0032); testLayer("average_pooling_dynamic_axes", "ONNX", 0.0014, 0.006);