From 392d737aa9011d839829865497bb2e3dbe348183 Mon Sep 17 00:00:00 2001 From: Guo Sheng Date: Wed, 17 Apr 2019 21:10:44 +0800 Subject: [PATCH] Merge pull request #16898 from Superjomn/fix/logical_op_infershape fix logical op infershape --- paddle/fluid/operators/controlflow/logical_op.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/paddle/fluid/operators/controlflow/logical_op.cc b/paddle/fluid/operators/controlflow/logical_op.cc index 2e7f3edd55c..37a82a8067f 100644 --- a/paddle/fluid/operators/controlflow/logical_op.cc +++ b/paddle/fluid/operators/controlflow/logical_op.cc @@ -71,8 +71,16 @@ class BinaryLogicalOpInferShape : public framework::InferShapeBase { "Input(Y) of %s operator must not be null", comment.type); auto dim_x = context->GetInputDim("X"); auto dim_y = context->GetInputDim("Y"); - PADDLE_ENFORCE_EQ(framework::product(dim_x), framework::product(dim_y), - "The number of elements in X and Y should be same"); + + int product_x = framework::product(dim_x); + int product_y = framework::product(dim_y); + bool check = context->IsRuntime() || (product_x >= 0 && product_y >= 0); + if (check) { + PADDLE_ENFORCE_EQ( + product_x, product_y, + "The number of elements in X and Y should be same, %d != %d", + product_x, product_y); + } context->SetOutputDim("Out", context->GetInputDim("X")); context->ShareLoD("X", "Out"); -- GitLab