diff --git a/mindspore/ccsrc/frontend/parallel/tensor_layout/redistribution_layout_transfer.cc b/mindspore/ccsrc/frontend/parallel/tensor_layout/redistribution_layout_transfer.cc index e7e3a7c758..293d968c41 100644 --- a/mindspore/ccsrc/frontend/parallel/tensor_layout/redistribution_layout_transfer.cc +++ b/mindspore/ccsrc/frontend/parallel/tensor_layout/redistribution_layout_transfer.cc @@ -25,10 +25,10 @@ Status RedistributionLayoutTransfer::CheckValidTransfer() { Shape from_shape = from_in_.tensor_shape().array(); if (std::find(from_shape.begin(), from_shape.end(), -1) != from_shape.end()) { is_dynamic_shape_ = true; - bool not_all_repeat = std::any_of(from_in_.tensor_map().array().begin(), from_in_.tensor_map().array().end(), - [](int64_t i) { return i != -1; }) || - std::any_of(to_in_.tensor_map().array().begin(), to_in_.tensor_map().array().end(), - [](int64_t i) { return i != -1; }); + Shape from_map = from_in_.tensor_map().array(); + Shape to_map = to_in_.tensor_map().array(); + bool not_all_repeat = std::any_of(from_map.begin(), from_map.end(), [](int64_t i) { return i != -1; }) || + std::any_of(to_map.begin(), to_map.end(), [](int64_t i) { return i != -1; }); if (from_in_ != to_in_ && not_all_repeat) { MS_LOG(ERROR) << "In dynamic shape scene, the from_tensor_shape should be equal to to_tensor_shape"; MS_LOG(ERROR) << "from_in layout" << from_in_.ToString();