diff --git a/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc b/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc index 968d01301c..1da1395222 100644 --- a/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc +++ b/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc @@ -284,7 +284,7 @@ py::object DoParamMixPrecisionCastTuple(bool *is_cast, const py::tuple tuple) { if (py::isinstance(tuple[i])) { MS_LOG(DEBUG) << "call cast for item " << i; result[i] = DoParamMixPrecisionCast(is_cast, tuple[i]); - } else if (py::isinstance(tuple[i])) { + } else if (py::isinstance(tuple[i]) || py::isinstance(tuple[i])) { result[i] = DoParamMixPrecisionCastTuple(is_cast, tuple[i]); } else { result[i] = tuple[i]; @@ -779,7 +779,7 @@ AnfNodePtr PynativeExecutor::MakeCNode(const OpExecInfoPtr &op_exec_info, std::v } // redundant cast call if the tensor is a const Tensor. cast_output = DoParamMixPrecisionCast(&is_cast, obj); - } else if (py::isinstance(obj)) { + } else if (py::isinstance(obj) || py::isinstance(obj)) { // mix precision for tuple inputs cast_output = DoParamMixPrecisionCastTuple(&is_cast, obj); }