diff --git a/mindspore/lite/src/runtime/kernel/arm/fp16/group_convolution_fp16.cc b/mindspore/lite/src/runtime/kernel/arm/fp16/group_convolution_fp16.cc index 9babb83e9a..3fded17066 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp16/group_convolution_fp16.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp16/group_convolution_fp16.cc @@ -52,19 +52,22 @@ int GroupConvolutionFP16CPUKernel::ReSize() { } void GroupConvolutionFP16CPUKernel::FreeSubKernel() { - for (auto sub_conv : group_convs_) { + for (auto &sub_conv : group_convs_) { // free sub conv input tensors / output tensors manually auto sub_in_tensors = sub_conv->in_tensors(); auto sub_in_tensor_num = sub_in_tensors.size(); for (size_t i = 0; i < sub_in_tensor_num; ++i) { delete sub_in_tensors[i]; + sub_in_tensors[i] = nullptr; } auto sub_out_tensors = sub_conv->out_tensors(); auto sub_out_tensor_num = sub_out_tensors.size(); for (size_t i = 0; i < sub_out_tensor_num; ++i) { delete sub_out_tensors[i]; + sub_out_tensors[i] = nullptr; } delete sub_conv; + sub_conv = nullptr; } } diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/group_convolution_fp32.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/group_convolution_fp32.cc index 8d526de8a6..2624efb960 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/group_convolution_fp32.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/group_convolution_fp32.cc @@ -57,19 +57,22 @@ int GroupConvolutionCPUKernel::ReSize() { } void GroupConvolutionCPUKernel::FreeSubKernel() { - for (auto sub_conv : group_convs_) { + for (auto &sub_conv : group_convs_) { // free sub conv input tensors / output tensors manually auto sub_in_tensors = sub_conv->in_tensors(); auto sub_in_tensor_num = sub_in_tensors.size(); for (size_t i = 0; i < sub_in_tensor_num; ++i) { delete sub_in_tensors[i]; + sub_in_tensors[i] = nullptr; } auto sub_out_tensors = sub_conv->out_tensors(); auto sub_out_tensor_num = sub_out_tensors.size(); for (size_t i = 0; i < sub_out_tensor_num; ++i) { delete sub_out_tensors[i]; + sub_out_tensors[i] = nullptr; } delete sub_conv; + sub_conv = nullptr; } } diff --git a/mindspore/lite/src/runtime/kernel/arm/int8/group_convolution_int8.h b/mindspore/lite/src/runtime/kernel/arm/int8/group_convolution_int8.h index 2ef3444c88..1330d71794 100644 --- a/mindspore/lite/src/runtime/kernel/arm/int8/group_convolution_int8.h +++ b/mindspore/lite/src/runtime/kernel/arm/int8/group_convolution_int8.h @@ -33,7 +33,6 @@ class GroupConvolutionInt8CPUKernel : public GroupConvolutionCPUKernel { : GroupConvolutionCPUKernel(parameter, inputs, outputs, ctx, primitive, group_convs, group_num) { } // opParameter(in channel, out channel) in this kernel has been split to groups, if // you want to get real params, multiply in channel / out channel with group num - ~GroupConvolutionInt8CPUKernel() override { GroupConvolutionCPUKernel::FreeSubKernel(); } int Run() override; void SeparateInput(int group_id) override; diff --git a/mindspore/lite/test/models_tflite_awaretraining.cfg b/mindspore/lite/test/models_tflite_awaretraining.cfg index 1cd319105f..3f3842761c 100644 --- a/mindspore/lite/test/models_tflite_awaretraining.cfg +++ b/mindspore/lite/test/models_tflite_awaretraining.cfg @@ -38,3 +38,4 @@ ssd_mobilenet_v1_1_default_1.tflite object_detection_mobile_object_localizer_v1_1_default_1.tflite gts_detect_0730_quant_frozen.tflite gts_model_quant_frozen.tflite +inception_v2_224_quant.tflite