From df73532f4ac0782ac2c29f7d2db142c0e1c312bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xavier=20dupr=C3=A9?= Date: Wed, 2 Dec 2020 15:50:25 +0100 Subject: [PATCH 1/2] fix initialisation issue --- .../core/providers/cpu/reduction/reduction_ops.cc | 12 +++++++----- .../core/providers/cpu/reduction/reduction_ops.h | 8 ++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/onnxruntime/core/providers/cpu/reduction/reduction_ops.cc b/onnxruntime/core/providers/cpu/reduction/reduction_ops.cc index 14dc9151e08de..fd3a0d485d1d5 100644 --- a/onnxruntime/core/providers/cpu/reduction/reduction_ops.cc +++ b/onnxruntime/core/providers/cpu/reduction/reduction_ops.cc @@ -74,10 +74,10 @@ namespace onnxruntime { x); #define REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL_INT8_ONLY(x, startVer, endVer) \ - ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL( \ - x, \ - startVer, \ - endVer, \ + ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL( \ + x, \ + startVer, \ + endVer, \ int8_t, \ KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType()), \ x); @@ -138,7 +138,6 @@ REGISTER_UNARY_ELEMENTWISE_KERNEL_INT64_ONLY(ReduceMax, 13); REGISTER_UNARY_ELEMENTWISE_KERNEL_INT8_ONLY(ReduceMax, 13); REGISTER_UNARY_ELEMENTWISE_KERNEL_UINT8_ONLY(ReduceMax, 13); - REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL(ReduceMean, 1, 10); REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL(ReduceMean, 11, 12); REGISTER_UNARY_ELEMENTWISE_KERNEL(ReduceMean, 13); @@ -361,6 +360,9 @@ void NoTransposeReduce(Tensor* output, const TensorShape& new_input_shape, const if (last_results.last_loop_red_size == 0 || last_results.last_loop_size == 0) return; } + ORT_ENFORCE(last_results.last_loop_red_size > 0); + ORT_ENFORCE(last_results.last_loop_size > 0); + ORT_ENFORCE(last_results.projected_index.size() > 0); int64_t denominator = last_results.last_loop_red_size * last_results.projected_index.size(); if (AGG::two_loops()) { diff --git a/onnxruntime/core/providers/cpu/reduction/reduction_ops.h b/onnxruntime/core/providers/cpu/reduction/reduction_ops.h index 9b0c30b88038c..271999c22b4c5 100644 --- a/onnxruntime/core/providers/cpu/reduction/reduction_ops.h +++ b/onnxruntime/core/providers/cpu/reduction/reduction_ops.h @@ -24,6 +24,14 @@ class ResultsNoTransposePrepareForReduce { std::vector unprojected_index; int64_t last_loop_size; int64_t last_loop_inc; + + ResultsNoTransposePrepareForReduce() { + last_loop_red_size = 0; + last_loop_red_inc = 0; + last_loop_size = 0; + last_loop_inc = 0; + } + bool equal(const std::vector& local_input_shape, const std::vector& local_reduced_axes) { if (input_shape.size() != local_input_shape.size()) return false; From efc91e835ed38fee8aa9e61b04a54310edf03357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xavier=20dupr=C3=A9?= Date: Wed, 2 Dec 2020 18:44:16 +0100 Subject: [PATCH 2/2] constructor --- onnxruntime/core/providers/cpu/reduction/reduction_ops.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/onnxruntime/core/providers/cpu/reduction/reduction_ops.h b/onnxruntime/core/providers/cpu/reduction/reduction_ops.h index 271999c22b4c5..092e6d0abead7 100644 --- a/onnxruntime/core/providers/cpu/reduction/reduction_ops.h +++ b/onnxruntime/core/providers/cpu/reduction/reduction_ops.h @@ -25,7 +25,7 @@ class ResultsNoTransposePrepareForReduce { int64_t last_loop_size; int64_t last_loop_inc; - ResultsNoTransposePrepareForReduce() { + ResultsNoTransposePrepareForReduce() : input_shape(), reduced_axes(), projected_index(), unprojected_index() { last_loop_red_size = 0; last_loop_red_inc = 0; last_loop_size = 0;