From 3409db950c9155e8f2ad4bcc85eb73b8004b2cd8 Mon Sep 17 00:00:00 2001 From: wangchaochaohu Date: Thu, 26 Sep 2019 19:53:14 +0800 Subject: [PATCH] fix reduce bug test=develop (#19971) --- paddle/fluid/operators/reduce_ops/reduce_op.h | 3 +++ .../paddle/fluid/tests/unittests/test_reduce_op.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/paddle/fluid/operators/reduce_ops/reduce_op.h b/paddle/fluid/operators/reduce_ops/reduce_op.h index 838ac895e5..01fb46fe9d 100644 --- a/paddle/fluid/operators/reduce_ops/reduce_op.h +++ b/paddle/fluid/operators/reduce_ops/reduce_op.h @@ -197,6 +197,9 @@ class ReduceOp : public framework::OperatorWithKernel { remove(dims_vector.begin(), dims_vector.end(), kDelFlag), dims_vector.end()); } + if (!keep_dim && dims_vector.size() == 0) { + dims_vector.push_back(1); + } auto out_dims = framework::make_ddim(dims_vector); ctx->SetOutputDim("Out", out_dims); if (dims[0] != 0) { diff --git a/python/paddle/fluid/tests/unittests/test_reduce_op.py b/python/paddle/fluid/tests/unittests/test_reduce_op.py index 65fc1453d8..a690644d05 100644 --- a/python/paddle/fluid/tests/unittests/test_reduce_op.py +++ b/python/paddle/fluid/tests/unittests/test_reduce_op.py @@ -397,5 +397,19 @@ class TestReduceAll(OpTest): self.check_grad(['X'], 'Out') +class Test1DReduceWithAxes1(OpTest): + def setUp(self): + self.op_type = "reduce_sum" + self.inputs = {'X': np.random.random(1).astype("float64")} + self.attrs = {'dim': [0], 'keep_dim': False} + self.outputs = {'Out': self.inputs['X'].sum(axis=0)} + + def test_check_output(self): + self.check_output() + + def test_check_grad(self): + self.check_grad(['X'], 'Out') + + if __name__ == '__main__': unittest.main() -- GitLab