diff --git a/mindspore/lite/src/runtime/kernel/arm/base/fullconnection_base.cc b/mindspore/lite/src/runtime/kernel/arm/base/fullconnection_base.cc index 621c6e0fba..3a2704bd44 100644 --- a/mindspore/lite/src/runtime/kernel/arm/base/fullconnection_base.cc +++ b/mindspore/lite/src/runtime/kernel/arm/base/fullconnection_base.cc @@ -42,6 +42,7 @@ kernel::LiteKernel *CpuFullConnectionFp32KernelCreator(const std::vectordata_c(); + auto restore_type = weight_tensor->data_type(); bool dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -58,6 +59,7 @@ kernel::LiteKernel *CpuFullConnectionFp32KernelCreator(const std::vectorFreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -70,12 +72,14 @@ kernel::LiteKernel *CpuFullConnectionFp32KernelCreator(const std::vectorFreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; } 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 9c83ff3a3b..29ef8842d7 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 @@ -139,7 +139,8 @@ kernel::LiteKernel *CpuConvDwFp16KernelCreator(const std::vector MS_ASSERT(desc.type == schema::PrimitiveType_DepthwiseConv2D); auto *weight_tensor = inputs.at(kWeightIndex); - auto *restore_data = weight_tensor->MutableData(); + auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); bool dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -166,6 +167,7 @@ kernel::LiteKernel *CpuConvDwFp16KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -178,12 +180,14 @@ kernel::LiteKernel *CpuConvDwFp16KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; } 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 7eede99558..ded5b55664 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_fp16.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp16/convolution_fp16.cc @@ -181,7 +181,8 @@ kernel::LiteKernel *CpuConvFp16KernelCreator(const std::vector & MS_ASSERT(desc.type == schema::PrimitiveType_Conv2D); auto *weight_tensor = inputs.at(kWeightIndex); - auto *restore_data = weight_tensor->MutableData(); + auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); bool dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -225,6 +226,7 @@ kernel::LiteKernel *CpuConvFp16KernelCreator(const std::vector & if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -237,12 +239,14 @@ kernel::LiteKernel *CpuConvFp16KernelCreator(const std::vector & if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; } 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 e06bec9f59..3376515ae6 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 @@ -203,7 +203,8 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vectorMutableData(); + auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); auto dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -223,6 +224,7 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vectorFreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -235,12 +237,14 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vectorFreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; } 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 789b1ec768..8cea3c7346 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 MS_ASSERT(desc.type == schema::PrimitiveType_DeConv2D); auto *weight_tensor = inputs.at(kWeightIndex); - auto *restore_data = weight_tensor->MutableData(); + auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); auto dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -243,6 +244,7 @@ kernel::LiteKernel *CpuDeConvFp16KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -255,12 +257,14 @@ kernel::LiteKernel *CpuDeConvFp16KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; } diff --git a/mindspore/lite/src/runtime/kernel/arm/fp16/fullconnection_fp16.cc b/mindspore/lite/src/runtime/kernel/arm/fp16/fullconnection_fp16.cc index 5c16ef685d..9dfae0ffae 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp16/fullconnection_fp16.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp16/fullconnection_fp16.cc @@ -237,6 +237,7 @@ kernel::LiteKernel *CpuFullConnectionFp16KernelCreator(const std::vectordata_c(); + auto restore_type = weight_tensor->data_type(); bool dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -255,6 +256,7 @@ kernel::LiteKernel *CpuFullConnectionFp16KernelCreator(const std::vectorFreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -267,12 +269,14 @@ kernel::LiteKernel *CpuFullConnectionFp16KernelCreator(const std::vectorFreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; } diff --git a/mindspore/lite/src/runtime/kernel/arm/fp16/matmul_fp16.cc b/mindspore/lite/src/runtime/kernel/arm/fp16/matmul_fp16.cc index 355bd1cd68..47486d23e4 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp16/matmul_fp16.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp16/matmul_fp16.cc @@ -251,6 +251,7 @@ kernel::LiteKernel *CpuMatmulFp16KernelCreator(const std::vector const mindspore::lite::PrimitiveC *primitive) { auto *weight_tensor = inputs.at(kWeightIndex); auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); bool dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -268,6 +269,7 @@ kernel::LiteKernel *CpuMatmulFp16KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -280,12 +282,14 @@ kernel::LiteKernel *CpuMatmulFp16KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; } diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution.cc index 7602bbffec..ee99b8e3ba 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution.cc @@ -303,7 +303,8 @@ kernel::LiteKernel *CpuConvFp32KernelCreator(const std::vector & } auto *weight_tensor = inputs.at(kWeightIndex); - auto *restore_data = weight_tensor->MutableData(); + auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); bool dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -328,6 +329,7 @@ kernel::LiteKernel *CpuConvFp32KernelCreator(const std::vector & if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(op_parameter); return nullptr; @@ -340,6 +342,7 @@ kernel::LiteKernel *CpuConvFp32KernelCreator(const std::vector & if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } @@ -347,6 +350,7 @@ kernel::LiteKernel *CpuConvFp32KernelCreator(const std::vector & if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_depthwise.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_depthwise.cc index ec71ec3f6e..99e8c6c25e 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_depthwise.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_depthwise.cc @@ -123,8 +123,8 @@ kernel::LiteKernel *CpuConvDwFp32KernelCreator(const std::vector MS_ASSERT(desc.type == schema::PrimitiveType_DepthwiseConv2D); auto *weight_tensor = inputs.at(kWeightIndex); - auto *restore_data = weight_tensor->MutableData(); - + auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); if (weight_tensor->data_type() == kNumberTypeInt8 || weight_tensor->data_type() == kNumberTypeInt16) { auto *dequant_weight = kernel::DequantUtil::DequantWeight(weight_tensor); if (dequant_weight == nullptr) { @@ -147,6 +147,7 @@ kernel::LiteKernel *CpuConvDwFp32KernelCreator(const std::vector if (weight_tensor->data_type() == kNumberTypeInt8 || weight_tensor->data_type() == kNumberTypeInt16) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -159,6 +160,7 @@ kernel::LiteKernel *CpuConvDwFp32KernelCreator(const std::vector if (weight_tensor->data_type() == kNumberTypeInt8 || weight_tensor->data_type() == kNumberTypeInt16) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } @@ -166,6 +168,7 @@ kernel::LiteKernel *CpuConvDwFp32KernelCreator(const std::vector if (weight_tensor->data_type() == kNumberTypeInt8 || weight_tensor->data_type() == kNumberTypeInt16) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/deconvolution.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/deconvolution.cc index 56bc61bad4..3df0f798c5 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/deconvolution.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/deconvolution.cc @@ -233,7 +233,8 @@ kernel::LiteKernel *CpuDeConvFp32KernelCreator(const std::vector MS_ASSERT(opParameter != nullptr); MS_ASSERT(desc.type == schema::PrimitiveType_DeConv2D); auto *weight_tensor = inputs.at(kWeightIndex); - auto *restore_data = weight_tensor->MutableData(); + auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); bool dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -260,6 +261,7 @@ kernel::LiteKernel *CpuDeConvFp32KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -272,6 +274,7 @@ kernel::LiteKernel *CpuDeConvFp32KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } @@ -279,6 +282,7 @@ kernel::LiteKernel *CpuDeConvFp32KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/deconvolution_depthwise.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/deconvolution_depthwise.cc index ef53cf2728..2eb80d91b5 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/deconvolution_depthwise.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/deconvolution_depthwise.cc @@ -195,7 +195,8 @@ kernel::LiteKernel *CpuDeconvDwFp32KernelCreator(const std::vectorMutableData(); + auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); bool dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -214,6 +215,7 @@ kernel::LiteKernel *CpuDeconvDwFp32KernelCreator(const std::vectorFreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -226,12 +228,14 @@ kernel::LiteKernel *CpuDeconvDwFp32KernelCreator(const std::vectorFreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel; } diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/matmul.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/matmul.cc index 105c758c72..94739469e1 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/matmul.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/matmul.cc @@ -343,6 +343,7 @@ kernel::LiteKernel *CpuMatmulFp32KernelCreator(const std::vector auto *weight_tensor = inputs.at(kWeightIndex); auto *restore_data = weight_tensor->data_c(); + auto restore_type = weight_tensor->data_type(); bool dequant_flag = !weight_tensor->GetQuantParams().empty() && weight_tensor->GetQuantParams().front().inited && restore_data != nullptr; if (dequant_flag) { @@ -361,6 +362,7 @@ kernel::LiteKernel *CpuMatmulFp32KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } free(opParameter); return nullptr; @@ -373,6 +375,7 @@ kernel::LiteKernel *CpuMatmulFp32KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return nullptr; } @@ -380,6 +383,7 @@ kernel::LiteKernel *CpuMatmulFp32KernelCreator(const std::vector if (dequant_flag) { weight_tensor->FreeData(); weight_tensor->set_data(restore_data); + weight_tensor->set_data_type(restore_type); } return kernel;