| @@ -27,7 +27,6 @@ using mindspore::schema::PrimitiveType_DetectionPostProcess; | |||||
| namespace mindspore::kernel { | namespace mindspore::kernel { | ||||
| int DetectionPostProcessCPUKernel::Init() { | int DetectionPostProcessCPUKernel::Init() { | ||||
| MS_ASSERT(context_->allocator != nullptr); | |||||
| auto anchor_tensor = in_tensors_.at(2); | auto anchor_tensor = in_tensors_.at(2); | ||||
| DetectionPostProcessParameter *parameter = reinterpret_cast<DetectionPostProcessParameter *>(op_parameter_); | DetectionPostProcessParameter *parameter = reinterpret_cast<DetectionPostProcessParameter *>(op_parameter_); | ||||
| parameter->anchors_ = nullptr; | parameter->anchors_ = nullptr; | ||||
| @@ -36,8 +35,7 @@ int DetectionPostProcessCPUKernel::Init() { | |||||
| const double scale = quant_params.at(0).scale; | const double scale = quant_params.at(0).scale; | ||||
| const int32_t zp = quant_params.at(0).zeroPoint; | const int32_t zp = quant_params.at(0).zeroPoint; | ||||
| auto anchor_uint8 = reinterpret_cast<uint8_t *>(anchor_tensor->Data()); | auto anchor_uint8 = reinterpret_cast<uint8_t *>(anchor_tensor->Data()); | ||||
| auto anchor_fp32 = | |||||
| reinterpret_cast<float *>(context_->allocator->Malloc(anchor_tensor->ElementsNum() * sizeof(float))); | |||||
| auto anchor_fp32 = new (std::nothrow) float[anchor_tensor->ElementsNum()]; | |||||
| if (anchor_fp32 == nullptr) { | if (anchor_fp32 == nullptr) { | ||||
| MS_LOG(ERROR) << "Malloc anchor failed"; | MS_LOG(ERROR) << "Malloc anchor failed"; | ||||
| return RET_ERROR; | return RET_ERROR; | ||||
| @@ -47,7 +45,7 @@ int DetectionPostProcessCPUKernel::Init() { | |||||
| } | } | ||||
| parameter->anchors_ = anchor_fp32; | parameter->anchors_ = anchor_fp32; | ||||
| } else if (anchor_tensor->data_type() == kNumberTypeFloat32) { | } else if (anchor_tensor->data_type() == kNumberTypeFloat32) { | ||||
| parameter->anchors_ = reinterpret_cast<float *>(context_->allocator->Malloc(anchor_tensor->Size())); | |||||
| parameter->anchors_ = new (std::nothrow) float[anchor_tensor->ElementsNum()]; | |||||
| if (parameter->anchors_ == nullptr) { | if (parameter->anchors_ == nullptr) { | ||||
| MS_LOG(ERROR) << "Malloc anchor failed"; | MS_LOG(ERROR) << "Malloc anchor failed"; | ||||
| return RET_ERROR; | return RET_ERROR; | ||||
| @@ -62,7 +60,7 @@ int DetectionPostProcessCPUKernel::Init() { | |||||
| DetectionPostProcessCPUKernel::~DetectionPostProcessCPUKernel() { | DetectionPostProcessCPUKernel::~DetectionPostProcessCPUKernel() { | ||||
| DetectionPostProcessParameter *parameter = reinterpret_cast<DetectionPostProcessParameter *>(op_parameter_); | DetectionPostProcessParameter *parameter = reinterpret_cast<DetectionPostProcessParameter *>(op_parameter_); | ||||
| context_->allocator->Free(parameter->anchors_); | |||||
| delete [](parameter->anchors_); | |||||
| } | } | ||||
| int DetectionPostProcessCPUKernel::ReSize() { return RET_OK; } | int DetectionPostProcessCPUKernel::ReSize() { return RET_OK; } | ||||