From af1568e61e0029c192b6938925d8716b1416d1ba Mon Sep 17 00:00:00 2001 From: yukavio Date: Sun, 27 Sep 2020 13:12:45 +0000 Subject: [PATCH] fix generate_proposals and affine grid error info --- .../operators/affine_grid_cudnn_op.cu.cc | 26 +++++++++++++------ .../detection/generate_proposals_op.cu | 2 -- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/paddle/fluid/operators/affine_grid_cudnn_op.cu.cc b/paddle/fluid/operators/affine_grid_cudnn_op.cu.cc index ed71594ba5..a2027e3506 100644 --- a/paddle/fluid/operators/affine_grid_cudnn_op.cu.cc +++ b/paddle/fluid/operators/affine_grid_cudnn_op.cu.cc @@ -26,8 +26,11 @@ template class CUDNNAffineGridOpKernel : public framework::OpKernel { public: void Compute(const framework::ExecutionContext& ctx) const override { - PADDLE_ENFORCE(platform::is_gpu_place(ctx.GetPlace()), - "It must use CUDAPlace."); + PADDLE_ENFORCE_EQ(platform::is_gpu_place(ctx.GetPlace()), true, + platform::errors::InvalidArgument("Only " + "support for CUDAPlace.Please switch " + "your context from CPUPlace to " + "CUDAPlace or update your cudnn."); auto& dev_ctx = ctx.template device_context(); auto handle = dev_ctx.cudnn_handle(); auto* theta = ctx.Input("Theta"); @@ -56,8 +59,10 @@ class CUDNNAffineGridOpKernel : public framework::OpKernel { cudnnSpatialTransformerDescriptor_t cudnn_st_desc = st_desc.descriptor(4, h_size_data); - PADDLE_ENFORCE(platform::dynload::cudnnSpatialTfGridGeneratorForward( - handle, cudnn_st_desc, theta_data, output_data)); + PADDLE_ENFORCE_EQ(platform::dynload::cudnnSpatialTfGridGeneratorForward( + handle, cudnn_st_desc, theta_data, output_data), + true, platform::errors::Fatal("Some errors has occurred " + "during forward computation in cudnn.")); } }; @@ -65,8 +70,11 @@ template class CUDNNAffineGridGradOpKernel : public framework::OpKernel { public: void Compute(const framework::ExecutionContext& ctx) const override { - PADDLE_ENFORCE(platform::is_gpu_place(ctx.GetPlace()), - "It must use CUDAPlace."); + PADDLE_ENFORCE_EQ(platform::is_gpu_place(ctx.GetPlace()), true, + platform::errors::InvalidArgument("Only " + "support for CUDAPlace. Please switch " + "your context from CPUPlace to " + "CUDAPlace or update your cudnn."); auto& dev_ctx = ctx.template device_context(); auto handle = dev_ctx.cudnn_handle(); auto output_grad = ctx.Input(framework::GradVarName("Output")); @@ -95,8 +103,10 @@ class CUDNNAffineGridGradOpKernel : public framework::OpKernel { const T* output_grad_data = output_grad->data(); T* theta_grad_data = theta_grad->mutable_data(ctx.GetPlace()); - PADDLE_ENFORCE(platform::dynload::cudnnSpatialTfGridGeneratorBackward( - handle, cudnn_st_desc, output_grad_data, theta_grad_data)); + PADDLE_ENFORCE_EQ(platform::dynload::cudnnSpatialTfGridGeneratorBackward( + handle, cudnn_st_desc, output_grad_data, theta_grad_data), + true, "Some errors " + "has occurred during forward computation in cudnn;"); } }; diff --git a/paddle/fluid/operators/detection/generate_proposals_op.cu b/paddle/fluid/operators/detection/generate_proposals_op.cu index 485136d8e2..71323ea966 100644 --- a/paddle/fluid/operators/detection/generate_proposals_op.cu +++ b/paddle/fluid/operators/detection/generate_proposals_op.cu @@ -247,8 +247,6 @@ static void NMS(const platform::CUDADeviceContext &ctx, const Tensor &proposals, const Tensor &sorted_indices, const T nms_threshold, Tensor *keep_out) { int boxes_num = proposals.dims()[0]; - PADDLE_ENFORCE_EQ(boxes_num, sorted_indices.dims()[0]); - const int col_blocks = DIVUP(boxes_num, kThreadsPerBlock); dim3 blocks(DIVUP(boxes_num, kThreadsPerBlock), DIVUP(boxes_num, kThreadsPerBlock)); -- GitLab