From e6709f757338b1ffcc1a72f4fe5aaad285b50bf7 Mon Sep 17 00:00:00 2001 From: zhengjun10 Date: Tue, 23 Mar 2021 15:24:09 +0800 Subject: [PATCH] fix minimum grad bug --- .../lite/examples/export_models/models_train.cfg | 1 + mindspore/lite/micro/cmake/file_list.cmake | 2 +- mindspore/lite/nnacl/infer/arithmetic_grad_infer.c | 1 - .../{maximum_grad_infer.c => max_min_grad_infer.c} | 9 +++++---- .../{maximum_grad_infer.h => max_min_grad_infer.h} | 10 +++++----- ...grad_infer_test.cc => max_min_grad_infer_test.cc} | 12 ++++++------ 6 files changed, 18 insertions(+), 17 deletions(-) rename mindspore/lite/nnacl/infer/{maximum_grad_infer.c => max_min_grad_infer.c} (84%) rename mindspore/lite/nnacl/infer/{maximum_grad_infer.h => max_min_grad_infer.h} (67%) rename mindspore/lite/test/ut/nnacl/infer/{maximum_grad_infer_test.cc => max_min_grad_infer_test.cc} (87%) diff --git a/mindspore/lite/examples/export_models/models_train.cfg b/mindspore/lite/examples/export_models/models_train.cfg index 24cb443e6e..5f295096b9 100644 --- a/mindspore/lite/examples/export_models/models_train.cfg +++ b/mindspore/lite/examples/export_models/models_train.cfg @@ -12,3 +12,4 @@ densenet shufflenetv2 vgg noarm32 xception +albert_mlm diff --git a/mindspore/lite/micro/cmake/file_list.cmake b/mindspore/lite/micro/cmake/file_list.cmake index fdb2f965a0..eeaea0805e 100644 --- a/mindspore/lite/micro/cmake/file_list.cmake +++ b/mindspore/lite/micro/cmake/file_list.cmake @@ -233,7 +233,7 @@ set(LITE_KERNEL_SRC ${LITE_DIR}/nnacl/infer/lsh_projection_infer.c ${LITE_DIR}/nnacl/infer/lstm_infer.c ${LITE_DIR}/nnacl/infer/matmul_infer.c - ${LITE_DIR}/nnacl/infer/maximum_grad_infer.c + ${LITE_DIR}/nnacl/infer/max_min_grad_infer.c ${LITE_DIR}/nnacl/infer/mean_infer.c ${LITE_DIR}/nnacl/infer/pooling_grad_infer.c ${LITE_DIR}/nnacl/infer/pooling_infer.c diff --git a/mindspore/lite/nnacl/infer/arithmetic_grad_infer.c b/mindspore/lite/nnacl/infer/arithmetic_grad_infer.c index a6d85caff4..ed00572b17 100644 --- a/mindspore/lite/nnacl/infer/arithmetic_grad_infer.c +++ b/mindspore/lite/nnacl/infer/arithmetic_grad_infer.c @@ -103,4 +103,3 @@ int ArithmeticGradInferShape(const TensorC *const *inputs, size_t inputs_size, T REG_INFER(DivGrad, PrimType_DivGrad, ArithmeticGradInferShape) REG_INFER(MulGrad, PrimType_MulGrad, ArithmeticGradInferShape) -REG_INFER(MinimumGrad, PrimType_MinimumGrad, ArithmeticGradInferShape) diff --git a/mindspore/lite/nnacl/infer/maximum_grad_infer.c b/mindspore/lite/nnacl/infer/max_min_grad_infer.c similarity index 84% rename from mindspore/lite/nnacl/infer/maximum_grad_infer.c rename to mindspore/lite/nnacl/infer/max_min_grad_infer.c index c06774e1a9..9e15a4d395 100644 --- a/mindspore/lite/nnacl/infer/maximum_grad_infer.c +++ b/mindspore/lite/nnacl/infer/max_min_grad_infer.c @@ -14,12 +14,12 @@ * limitations under the License. */ -#include "nnacl/infer/maximum_grad_infer.h" +#include "nnacl/infer/max_min_grad_infer.h" #include "nnacl/arithmetic.h" #include "nnacl/infer/infer_register.h" -int MaximumGradInferShape(const TensorC *const *inputs, size_t inputs_size, TensorC **outputs, size_t outputs_size, - OpParameter *parameter) { +int MaxMinGradInferShape(const TensorC *const *inputs, size_t inputs_size, TensorC **outputs, size_t outputs_size, + OpParameter *parameter) { #ifdef Debug int check_ret = CheckAugmentNullSize(inputs, inputs_size, outputs, outputs_size, parameter, 3, 2); if (check_ret != NNACL_OK) { @@ -60,4 +60,5 @@ int MaximumGradInferShape(const TensorC *const *inputs, size_t inputs_size, Tens return NNACL_OK; } -REG_INFER(MaximumGrad, PrimType_MaximumGrad, MaximumGradInferShape) +REG_INFER(MaximumGrad, PrimType_MaximumGrad, MaxMinGradInferShape) +REG_INFER(MinimumGrad, PrimType_MinimumGrad, MaxMinGradInferShape) diff --git a/mindspore/lite/nnacl/infer/maximum_grad_infer.h b/mindspore/lite/nnacl/infer/max_min_grad_infer.h similarity index 67% rename from mindspore/lite/nnacl/infer/maximum_grad_infer.h rename to mindspore/lite/nnacl/infer/max_min_grad_infer.h index 8fdf21d262..91fc83ee4f 100644 --- a/mindspore/lite/nnacl/infer/maximum_grad_infer.h +++ b/mindspore/lite/nnacl/infer/max_min_grad_infer.h @@ -13,8 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef MINDSPORE_LITE_NNACL_INFER_MAXIMUM_GRAD_INFER_H_ -#define MINDSPORE_LITE_NNACL_INFER_MAXIMUM_GRAD_INFER_H_ +#ifndef MINDSPORE_LITE_NNACL_INFER_MAX_MIN_GRAD_INFER_H_ +#define MINDSPORE_LITE_NNACL_INFER_MAX_MIN_GRAD_INFER_H_ #include "nnacl/infer/common_infer.h" @@ -22,10 +22,10 @@ extern "C" { #endif -int MaximumGradInferShape(const TensorC *const *inputs, size_t inputs_size, TensorC **outputs, size_t outputs_size, - OpParameter *parameter); +int MaxMinGradInferShape(const TensorC *const *inputs, size_t inputs_size, TensorC **outputs, size_t outputs_size, + OpParameter *parameter); #ifdef __cplusplus } #endif -#endif // MINDSPORE_LITE_NNACL_INFER_MAXIMUM_GRAD_INFER_H_ +#endif // MINDSPORE_LITE_NNACL_INFER_MAX_MIN_GRAD_INFER_H_ diff --git a/mindspore/lite/test/ut/nnacl/infer/maximum_grad_infer_test.cc b/mindspore/lite/test/ut/nnacl/infer/max_min_grad_infer_test.cc similarity index 87% rename from mindspore/lite/test/ut/nnacl/infer/maximum_grad_infer_test.cc rename to mindspore/lite/test/ut/nnacl/infer/max_min_grad_infer_test.cc index 9d8e87fa77..14731353a3 100644 --- a/mindspore/lite/test/ut/nnacl/infer/maximum_grad_infer_test.cc +++ b/mindspore/lite/test/ut/nnacl/infer/max_min_grad_infer_test.cc @@ -14,17 +14,17 @@ * limitations under the License. */ #include "common/common_test.h" -#include "mindspore/lite/nnacl/infer/maximum_grad_infer.h" +#include "mindspore/lite/nnacl/infer/max_min_grad_infer.h" #include "mindspore/lite/nnacl/arithmetic.h" namespace mindspore { -class MaximumGradInferTest : public mindspore::CommonTest { +class MaxMinGradInferTest : public mindspore::CommonTest { public: - MaximumGradInferTest() {} + MaxMinGradInferTest() {} }; -TEST_F(MaximumGradInferTest, MaximumGradInferTest0) { +TEST_F(MaxMinGradInferTest, MaxMinGradInferTest0) { size_t inputs_size = 3; std::vector inputs(inputs_size, NULL); inputs[0] = new TensorC; @@ -47,8 +47,8 @@ TEST_F(MaximumGradInferTest, MaximumGradInferTest0) { outputs[1] = new TensorC; ArithmeticParameter *parameter = new ArithmeticParameter; parameter->op_parameter_.infer_flag_ = true; - int ret = MaximumGradInferShape((const TensorC **)inputs.data(), inputs.size(), outputs.data(), outputs.size(), - reinterpret_cast(parameter)); + int ret = MaxMinGradInferShape((const TensorC **)inputs.data(), inputs.size(), outputs.data(), outputs.size(), + reinterpret_cast(parameter)); ASSERT_EQ(ret, NNACL_OK); ASSERT_EQ(outputs[0]->shape_size_, 2); ASSERT_EQ(outputs[0]->shape_[0], 4);