You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by GitBox <gi...@apache.org> on 2018/08/18 00:23:20 UTC
[GitHub] sandeep-krishnamurthy closed pull request #12174: [MXNET-806]
Report error when shape mismatch in "where" operator
sandeep-krishnamurthy closed pull request #12174: [MXNET-806] Report error when shape mismatch in "where" operator
URL: https://github.com/apache/incubator-mxnet/pull/12174
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/src/operator/tensor/control_flow_op.h b/src/operator/tensor/control_flow_op.h
index 503bc7c4abb..94e65109c35 100644
--- a/src/operator/tensor/control_flow_op.h
+++ b/src/operator/tensor/control_flow_op.h
@@ -188,7 +188,7 @@ inline bool WhereOpShape(const nnvm::NodeAttrs& attrs,
SHAPE_ASSIGN_CHECK(*in_attrs, 0, tshape);
return true;
} else if ((*in_attrs)[0].ndim() == 1) {
- return (*in_attrs)[0].Size() == static_cast<size_t>(tshape[0]);
+ CHECK_EQ((*in_attrs)[0].Size(), static_cast<size_t>(tshape[0]));
}
return false;
}
diff --git a/tests/python/unittest/test_operator.py b/tests/python/unittest/test_operator.py
index f1aec12ccc3..a1307cf868f 100644
--- a/tests/python/unittest/test_operator.py
+++ b/tests/python/unittest/test_operator.py
@@ -4471,6 +4471,20 @@ def test_where_numeric_gradient(shape, same_shape):
condition_np, x_np, y_np = get_forward_inputs_condition_vector(shape)
check_numeric_gradient(where_sym, [condition_np, x_np, y_np], grad_nodes=['x', 'y'])
+ def test_invalid_shape():
+ condition = mx.sym.Variable('condition')
+ x = mx.sym.Variable('x')
+ y = mx.sym.Variable('y')
+ where_sym = mx.sym.where(condition, x, y)
+
+ assert_exception(lambda: where_sym.eval(x=mx.nd.array([[2,3],[4,5],[6,7]]),
+ y=mx.nd.array([[8,9],[10,11],[12,13]]),
+ condition=mx.nd.array([1,0])), MXNetError)
+
+ assert_exception(lambda: mx.nd.where(x=mx.nd.array([[2,3],[4,5],[6,7]]),
+ y=mx.nd.array([[8,9],[10,11],[12,13]]),
+ condition=mx.nd.array([1,0])), MXNetError)
+
test_where_helper((5, 9), True)
test_where_helper((5, 9), False)
test_where_helper((5, 7, 9), True)
@@ -4481,7 +4495,7 @@ def test_where_numeric_gradient(shape, same_shape):
test_where_numeric_gradient((5, 9), False)
test_where_numeric_gradient((5, 7, 9), True)
test_where_numeric_gradient((5, 7, 9), False)
-
+ test_invalid_shape()
@with_seed()
def test_new_softmax():
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services