diff --git a/paddle/fluid/operators/elementwise/elementwise_op.h b/paddle/fluid/operators/elementwise/elementwise_op.h index 5443132641cbfc0315f41052a76633f6155b6366..91e44152658d87750f0b6d5826c481904085e086 100644 --- a/paddle/fluid/operators/elementwise/elementwise_op.h +++ b/paddle/fluid/operators/elementwise/elementwise_op.h @@ -272,9 +272,12 @@ class ElementwiseGradOpInplace : public framework::InplaceInToOut { std::unordered_map Apply( const framework::OpDesc &op_desc, framework::BlockDesc *block) const override { - return std::unordered_map{ - {framework::GradVarName("Out"), framework::GradVarName("X")}, - }; + std::unordered_map ret; + if (block->HasVar(framework::GradVarName("X")) && + block->HasVar(framework::GradVarName("Out"))) { + ret[framework::GradVarName("Out")] = framework::GradVarName("X"); + } + return ret; } };