|
|
@ -204,7 +204,7 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vector<lite::Tensor
|
|
|
|
|
|
|
|
|
|
|
|
auto *weight_tensor = inputs.at(kWeightIndex);
|
|
|
|
auto *weight_tensor = inputs.at(kWeightIndex);
|
|
|
|
auto *restore_data = weight_tensor->MutableData();
|
|
|
|
auto *restore_data = weight_tensor->MutableData();
|
|
|
|
if (weight_tensor->data_type() == kNumberTypeInt8 || primitive->GetQuantType() == schema::QuantType_WeightQuant) {
|
|
|
|
if (weight_tensor->data_type() == kNumberTypeInt8) {
|
|
|
|
auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor);
|
|
|
|
auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor);
|
|
|
|
if (dequant_weight == nullptr) {
|
|
|
|
if (dequant_weight == nullptr) {
|
|
|
|
MS_LOG(ERROR) << "dequant data is nullptr.";
|
|
|
|
MS_LOG(ERROR) << "dequant data is nullptr.";
|
|
|
@ -217,7 +217,7 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vector<lite::Tensor
|
|
|
|
auto kernel = new (std::nothrow) DeconvolutionDepthwiseFp16CPUKernel(opParameter, inputs, outputs, ctx, primitive);
|
|
|
|
auto kernel = new (std::nothrow) DeconvolutionDepthwiseFp16CPUKernel(opParameter, inputs, outputs, ctx, primitive);
|
|
|
|
if (kernel == nullptr) {
|
|
|
|
if (kernel == nullptr) {
|
|
|
|
MS_LOG(ERROR) << "kernel is nullptr.";
|
|
|
|
MS_LOG(ERROR) << "kernel is nullptr.";
|
|
|
|
if (weight_tensor->data_type() == kNumberTypeInt8 || primitive->GetQuantType() == schema::QuantType_WeightQuant) {
|
|
|
|
if (weight_tensor->data_type() == kNumberTypeInt8) {
|
|
|
|
weight_tensor->FreeData();
|
|
|
|
weight_tensor->FreeData();
|
|
|
|
weight_tensor->set_data_type(kNumberTypeInt8);
|
|
|
|
weight_tensor->set_data_type(kNumberTypeInt8);
|
|
|
|
weight_tensor->SetData(restore_data);
|
|
|
|
weight_tensor->SetData(restore_data);
|
|
|
@ -229,14 +229,14 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vector<lite::Tensor
|
|
|
|
delete kernel;
|
|
|
|
delete kernel;
|
|
|
|
MS_LOG(ERROR) << "Init kernel failed, name: " << opParameter->name_ << ", type: "
|
|
|
|
MS_LOG(ERROR) << "Init kernel failed, name: " << opParameter->name_ << ", type: "
|
|
|
|
<< schema::EnumNamePrimitiveType(static_cast<schema::PrimitiveType>(opParameter->type_));
|
|
|
|
<< schema::EnumNamePrimitiveType(static_cast<schema::PrimitiveType>(opParameter->type_));
|
|
|
|
if (weight_tensor->data_type() == kNumberTypeInt8 || primitive->GetQuantType() == schema::QuantType_WeightQuant) {
|
|
|
|
if (weight_tensor->data_type() == kNumberTypeInt8) {
|
|
|
|
weight_tensor->FreeData();
|
|
|
|
weight_tensor->FreeData();
|
|
|
|
weight_tensor->set_data_type(kNumberTypeInt8);
|
|
|
|
weight_tensor->set_data_type(kNumberTypeInt8);
|
|
|
|
weight_tensor->SetData(restore_data);
|
|
|
|
weight_tensor->SetData(restore_data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nullptr;
|
|
|
|
return nullptr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (weight_tensor->data_type() == kNumberTypeInt8 || primitive->GetQuantType() == schema::QuantType_WeightQuant) {
|
|
|
|
if (weight_tensor->data_type() == kNumberTypeInt8) {
|
|
|
|
weight_tensor->FreeData();
|
|
|
|
weight_tensor->FreeData();
|
|
|
|
weight_tensor->set_data_type(kNumberTypeInt8);
|
|
|
|
weight_tensor->set_data_type(kNumberTypeInt8);
|
|
|
|
weight_tensor->SetData(restore_data);
|
|
|
|
weight_tensor->SetData(restore_data);
|
|
|
|