diff --git a/mindspore/ccsrc/pipeline/jit/pass.cc b/mindspore/ccsrc/pipeline/jit/pass.cc index 7184cbd471..7d7fd28dc3 100644 --- a/mindspore/ccsrc/pipeline/jit/pass.cc +++ b/mindspore/ccsrc/pipeline/jit/pass.cc @@ -154,17 +154,19 @@ OptPassGroupMap GetOptPassesA(const opt::irpass::OptimizeIRPassLib &irpass) { opt::OptPassConfig a_after_grad = opt::OptPassConfig({ irpass.inline_without_move_, }); - opt::OptPassConfig a_3 = opt::OptPassConfig({ - irpass.arithmetic_simplify2_, - irpass.same_eliminate_, - irpass.check_bprop_eliminate_, - irpass.switch_layer_defer_inline_, - irpass.replace_applicator_, - irpass.mirror_mini_step_elim_, - irpass.virtual_add_elim_, - irpass.row_tensor_add_zeros_like_, - irpass.mini_step_allgather_replace_, - }); + opt::OptPassConfig a_3 = opt::OptPassConfig( + { + irpass.arithmetic_simplify2_, + irpass.same_eliminate_, + irpass.check_bprop_eliminate_, + irpass.switch_layer_defer_inline_, + irpass.replace_applicator_, + irpass.mirror_mini_step_elim_, + irpass.virtual_add_elim_, + irpass.row_tensor_add_zeros_like_, + irpass.mini_step_allgather_replace_, + }, + false, true); opt::OptPassConfig virtual_dataset = opt::OptPassConfig({irpass.virtual_dataset_eliminate_}); opt::irpass::ResolveIRPassLib resolve_irpass; diff --git a/mindspore/ops/composite/multitype_ops/getitem_impl.py b/mindspore/ops/composite/multitype_ops/getitem_impl.py index 03b394e1e1..189b991f41 100644 --- a/mindspore/ops/composite/multitype_ops/getitem_impl.py +++ b/mindspore/ops/composite/multitype_ops/getitem_impl.py @@ -113,6 +113,7 @@ def _tuple_getitem_by_tensor(data, tensor_index): Outputs: Type, is the same as the element type of data. """ + tensor_index = F.select(tensor_index >= 0, tensor_index, tensor_index + len(data)) return _tuple_get_item_tensor(data, tensor_index)