diff --git a/mindspore/_extends/parse/standard_method.py b/mindspore/_extends/parse/standard_method.py index 596771a3e2..5e0463a074 100644 --- a/mindspore/_extends/parse/standard_method.py +++ b/mindspore/_extends/parse/standard_method.py @@ -133,7 +133,9 @@ def while_cond(x): @constexpr def check_type_same(x_type, base_type): """Check x_type is same as base_type.""" - return mstype.issubclass_(x_type, base_type) + if mstype.issubclass_(x_type, base_type): + return True + raise TypeError(f"The arg 'x' should be a {base_type}, but got {x_type}.") @constexpr diff --git a/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc b/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc index 21b00e6098..092e0e1b59 100644 --- a/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc +++ b/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc @@ -964,8 +964,8 @@ void PynativeExecutor::EndGraphInner(const py::object &cell, const py::object &o cnode->set_inputs(args); set_obj_node_map(curr_g_, out_id, cnode); } else { - MS_LOG(ERROR) << "Graph has no this out: " << out_id; - return; + MS_LOG(DEBUG) << "Set ValueNode as output for graph, out id: " << out_id; + MakeValueNode(out, out_id); } } EndGraphByOutId(out_id, cell, out, args); diff --git a/mindspore/ops/operations/array_ops.py b/mindspore/ops/operations/array_ops.py index 5d1b348feb..156f9f6433 100644 --- a/mindspore/ops/operations/array_ops.py +++ b/mindspore/ops/operations/array_ops.py @@ -1959,7 +1959,7 @@ def _compute_slicing_length(begin, end, stride, x_shape, i): if begin >= x_dim: # When slicing backward, if begin >= x_dim, set begin = -1, which means start from the last element. begin = -1 - if 0 < end < x_dim: + if 0 <= end < x_dim: end += -x_dim if end < -x_dim - 1: # When slicing backward, if end < -x_dim - 1, set end = -x_dim - 1, which means