diff --git a/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_depthwise_fp16.cc b/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_depthwise_fp16.cc index 177708b18e..cb8273fa8b 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_depthwise_fp16.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_depthwise_fp16.cc @@ -145,7 +145,8 @@ kernel::LiteKernel *CpuConvDwFp16KernelCreator(const std::vector auto *weight_tensor = inputs.at(kWeightIndex); auto *restore_data = weight_tensor->MutableData(); - if (weight_tensor->data_type() == kNumberTypeInt8) { + auto dequant_flag = (weight_tensor->data_type() == kNumberTypeInt8) ? true : false; + if (dequant_flag) { auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor); if (dequant_weight == nullptr) { MS_LOG(ERROR) << "dequant data is nullptr."; @@ -165,7 +166,7 @@ kernel::LiteKernel *CpuConvDwFp16KernelCreator(const std::vector } if (kernel == nullptr) { MS_LOG(ERROR) << "kernel is nullptr."; - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); @@ -177,14 +178,14 @@ kernel::LiteKernel *CpuConvDwFp16KernelCreator(const std::vector delete kernel; MS_LOG(ERROR) << "Init kernel failed, name: " << opParameter->name_ << ", type: " << schema::EnumNamePrimitiveType(static_cast(opParameter->type_)); - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); } return nullptr; } - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); diff --git a/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_fp16.cc b/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_fp16.cc index 0b8a8e2ac1..43fd794501 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_fp16.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_fp16.cc @@ -183,7 +183,8 @@ kernel::LiteKernel *CpuConvFp16KernelCreator(const std::vector & auto *weight_tensor = inputs.at(kWeightIndex); auto *restore_data = weight_tensor->MutableData(); - if (weight_tensor->data_type() == kNumberTypeInt8) { + auto dequant_flag = (weight_tensor->data_type() == kNumberTypeInt8) ? true : false; + if (dequant_flag) { auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor); if (dequant_weight == nullptr) { MS_LOG(ERROR) << "dequant data is nullptr."; @@ -218,7 +219,7 @@ kernel::LiteKernel *CpuConvFp16KernelCreator(const std::vector & } if (kernel == nullptr) { MS_LOG(DEBUG) << "Create conv fp16 kernel failed."; - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); @@ -230,14 +231,14 @@ kernel::LiteKernel *CpuConvFp16KernelCreator(const std::vector & delete kernel; MS_LOG(INFO) << "Init fp16 kernel failed, name: " << opParameter->name_ << ", type: " << schema::EnumNamePrimitiveType(static_cast(opParameter->type_)); - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); } return nullptr; } - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); diff --git a/mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_depthwise_fp16.cc b/mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_depthwise_fp16.cc index 9509d67fb2..734531ab71 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_depthwise_fp16.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_depthwise_fp16.cc @@ -205,7 +205,8 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vectorMutableData(); - if (weight_tensor->data_type() == kNumberTypeInt8) { + auto dequant_flag = (weight_tensor->data_type() == kNumberTypeInt8) ? true : false; + if (dequant_flag) { auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor); if (dequant_weight == nullptr) { MS_LOG(ERROR) << "dequant data is nullptr."; @@ -218,7 +219,7 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vectordata_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); @@ -230,14 +231,14 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vectorname_ << ", type: " << schema::EnumNamePrimitiveType(static_cast(opParameter->type_)); - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); } return nullptr; } - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); diff --git a/mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_fp16.cc b/mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_fp16.cc index 1ffc1648db..c721e13a1d 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_fp16.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_fp16.cc @@ -215,7 +215,8 @@ kernel::LiteKernel *CpuDeConvFp16KernelCreator(const std::vector auto *weight_tensor = inputs.at(kWeightIndex); auto *restore_data = weight_tensor->MutableData(); - if (weight_tensor->data_type() == kNumberTypeInt8) { + auto dequant_flag = (weight_tensor->data_type() == kNumberTypeInt8) ? true : false; + if (dequant_flag) { auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor); if (dequant_weight == nullptr) { MS_LOG(ERROR) << "dequant data is nullptr."; @@ -228,7 +229,7 @@ kernel::LiteKernel *CpuDeConvFp16KernelCreator(const std::vector auto kernel = new (std::nothrow) DeConvolutionFp16CPUKernel(opParameter, inputs, outputs, ctx, primitive); if (kernel == nullptr) { MS_LOG(ERROR) << "kernel is nullptr."; - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); @@ -240,14 +241,14 @@ kernel::LiteKernel *CpuDeConvFp16KernelCreator(const std::vector delete kernel; MS_LOG(ERROR) << "Init kernel failed, name: " << opParameter->name_ << ", type: " << schema::EnumNamePrimitiveType(static_cast(opParameter->type_)); - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data); } return nullptr; } - if (weight_tensor->data_type() == kNumberTypeInt8) { + if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data_type(kNumberTypeInt8); weight_tensor->SetData(restore_data);