From 72aef6b16861181db327ab0adfc8d4de329c8ffe Mon Sep 17 00:00:00 2001 From: Qiao Longfei Date: Sun, 28 Oct 2018 17:44:39 +0800 Subject: [PATCH] sum selected rows check empty --- paddle/fluid/operators/sum_op.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/paddle/fluid/operators/sum_op.h b/paddle/fluid/operators/sum_op.h index d3c905c0b8..f6e12dfc76 100644 --- a/paddle/fluid/operators/sum_op.h +++ b/paddle/fluid/operators/sum_op.h @@ -116,8 +116,22 @@ class SumKernel : public framework::OpKernel { auto *out = context.Output("Out"); out->mutable_rows()->clear(); - math::scatter::MergeAdd merge_add; - merge_add(context.template device_context(), inputs, out); + bool has_data = false; + for (auto &in : inputs) { + if (in->rows().size() > 0) { + has_data = true; + break; + } + } + if (has_data) { + math::scatter::MergeAdd merge_add; + merge_add(context.template device_context(), inputs, + out); + } else { + // no data, just set a empty out tensor. + out->mutable_value()->mutable_data(framework::make_ddim({0}), + context.GetPlace()); + } } else if (out_var->IsType()) { auto &out_array = *out_var->GetMutable(); for (size_t i = in_place ? 1 : 0; i < in_vars.size(); ++i) { -- GitLab