diff --git a/paddle/fluid/operators/reduce_ops/reduce_op.h b/paddle/fluid/operators/reduce_ops/reduce_op.h index c43c7e5e76f28..1f852f97728b3 100644 --- a/paddle/fluid/operators/reduce_ops/reduce_op.h +++ b/paddle/fluid/operators/reduce_ops/reduce_op.h @@ -562,24 +562,23 @@ class ReduceGradOp : public framework::OperatorWithKernel { auto input_data_type = OperatorWithKernel::IndicateVarDataType( ctx, framework::GradVarName("Out")); +#ifdef PADDLE_WITH_MKLDNN auto CanMKLDNNReduceGradBeUsed = [&]() { auto dx_dims = ctx.Input("X")->dims(); if (ctx.Attr("reduce_all") || - (ctx.Attr>("dim").size() == dx_dims.size())) + ((int)ctx.Attr>("dim").size() == dx_dims.size())) return true; auto dy_dims = ctx.Input(framework::GradVarName("Out"))->dims(); // Subtensor must be on rightmost part of the bigger tensor - for (size_t i = 0; i < dy_dims.size(); ++i) { + for (int i = 0; i < dy_dims.size(); ++i) { if (dx_dims[dx_dims.size() - dy_dims.size() + i] != dy_dims[i]) { return false; } } return true; }; - -#ifdef PADDLE_WITH_MKLDNN if (this->CanMKLDNNBeUsed(ctx, input_data_type) && CanMKLDNNReduceGradBeUsed()) { return framework::OpKernelType(input_data_type, ctx.GetPlace(),