diff --git a/paddle/fluid/operators/affine_channel_op.cc b/paddle/fluid/operators/affine_channel_op.cc index 7663890a4787c5bf45e7b4a126cb5bd30eefa892..27370a3c29a073f3ce6f01fd5aaf28b5ef1ca3a6 100644 --- a/paddle/fluid/operators/affine_channel_op.cc +++ b/paddle/fluid/operators/affine_channel_op.cc @@ -80,14 +80,11 @@ class AffineChannelOp : public framework::OperatorWithKernel { PADDLE_ENFORCE_EQ(scale_dims.size(), 1UL); PADDLE_ENFORCE_EQ(b_dims.size(), 1UL); - if (ctx->IsRuntime()) { + if (ctx->IsRuntime() || scale_dims[0] > 0) { PADDLE_ENFORCE_EQ(scale_dims[0], C); + } + if (ctx->IsRuntime() || b_dims[0] > 0) { PADDLE_ENFORCE_EQ(b_dims[0], C); - } else { - if (scale_dims[0] > 0 && b_dims[0] > 0) { - PADDLE_ENFORCE_EQ(scale_dims[0], C); - PADDLE_ENFORCE_EQ(b_dims[0], C); - } } ctx->SetOutputDim("Out", ctx->GetInputDim("X")); diff --git a/paddle/fluid/operators/conv_op.cc b/paddle/fluid/operators/conv_op.cc index a78e8ca4fb7a4bd86519d33dd9b08ec220659c85..e1281602bf0d1bf25a2c4dfa32f495ed724d24eb 100644 --- a/paddle/fluid/operators/conv_op.cc +++ b/paddle/fluid/operators/conv_op.cc @@ -69,7 +69,7 @@ void ConvOp::InferShape(framework::InferShapeContext* ctx) const { std::vector output_shape({in_dims[0], filter_dims[0]}); for (size_t i = 0; i < strides.size(); ++i) { if ((!ctx->IsRuntime()) && - (in_dims[i + 2] == -1 || filter_dims[i + 2] == -1)) { + (in_dims[i + 2] <= 0 || filter_dims[i + 2] <= 0)) { output_shape.push_back(-1); } else { output_shape.push_back(ConvOutputSize(in_dims[i + 2], filter_dims[i + 2], diff --git a/paddle/fluid/operators/roi_pool_op.cc b/paddle/fluid/operators/roi_pool_op.cc index 11b0bf3beecbcc66cf739289ba03502fbe159c5a..cfac7e09e123c43204454adacb87a7c3c158690e 100644 --- a/paddle/fluid/operators/roi_pool_op.cc +++ b/paddle/fluid/operators/roi_pool_op.cc @@ -50,14 +50,12 @@ class ROIPoolOp : public framework::OperatorWithKernel { int pooled_width = ctx->Attrs().Get("pooled_width"); float spatial_scale = ctx->Attrs().Get("spatial_scale"); - if (ctx->IsRuntime()) { - PADDLE_ENFORCE_GT(pooled_height, 0, - "The pooled output height must greater than 0"); - PADDLE_ENFORCE_GT(pooled_width, 0, - "The pooled output width must greater than 0"); - PADDLE_ENFORCE_GT(spatial_scale, 0.0f, - "The spatial scale must greater than 0"); - } + PADDLE_ENFORCE_GT(pooled_height, 0, + "The pooled output height must greater than 0"); + PADDLE_ENFORCE_GT(pooled_width, 0, + "The pooled output width must greater than 0"); + PADDLE_ENFORCE_GT(spatial_scale, 0.0f, + "The spatial scale must greater than 0"); auto out_dims = input_dims; out_dims[0] = rois_dims[0]; diff --git a/paddle/fluid/operators/row_conv_op.cc b/paddle/fluid/operators/row_conv_op.cc index ac66f46949407578b92203fd4dfb0aa5e19afe2a..b3e9f2d0a517d7171c20091a59ab75401b2ef218 100644 --- a/paddle/fluid/operators/row_conv_op.cc +++ b/paddle/fluid/operators/row_conv_op.cc @@ -41,16 +41,10 @@ class RowConvOp : public framework::OperatorWithKernel { auto filter_dims = ctx->GetInputDim("Filter"); PADDLE_ENFORCE_EQ(x_dims.size(), 2, "Input(X)'s rank should be 2."); PADDLE_ENFORCE_EQ(filter_dims.size(), 2, "Input(Y)'s rank should be 2."); - if (ctx->IsRuntime()) { + if (ctx->IsRuntime() || (x_dims[1] > 0 && filter_dims[1] > 0)) { PADDLE_ENFORCE_EQ( x_dims[1], filter_dims[1], "The 2nd dimension of Input(X) and Input(Filter) should be same."); - } else { - if (x_dims[1] > 0 && filter_dims[1] > 0) { - PADDLE_ENFORCE_EQ( - x_dims[1], filter_dims[1], - "The 2nd dimension of Input(X) and Input(Filter) should be same."); - } } ctx->SetOutputDim("Out", x_dims); diff --git a/paddle/fluid/operators/unpool_op.cc b/paddle/fluid/operators/unpool_op.cc index bb487e94d53bd94bbc3db8dff175310ef46dcdbe..86b4c06a27cc63fca8ec077cb3044ffe9415e01d 100644 --- a/paddle/fluid/operators/unpool_op.cc +++ b/paddle/fluid/operators/unpool_op.cc @@ -102,7 +102,7 @@ class UnpoolOp : public framework::OperatorWithKernel { std::vector output_shape({in_x_dims[0], in_x_dims[1]}); for (size_t i = 0; i < ksize.size(); ++i) { - if (!ctx->IsRuntime() && in_x_dims[i + 2] == -1) { + if (!ctx->IsRuntime() && in_x_dims[i + 2] <= 0) { output_shape.push_back(-1); } else { output_shape.push_back(UnpoolOutputSize(in_x_dims[i + 2], ksize[i],