diff --git a/onnxscript/_internal/converter.py b/onnxscript/_internal/converter.py index e3d6f44854..999aa58200 100644 --- a/onnxscript/_internal/converter.py +++ b/onnxscript/_internal/converter.py @@ -1101,11 +1101,14 @@ def ret(exp, i, suffix): if val.value.is_graph_input(): # In ONNX, a graph-input cannot be an output of the graph. # We need to insert a copy. - return_var = self._emit_copy(return_var, preferred_name) + suggested_name = preferred_name + if isinstance(exp, ast.Name): + suggested_name = exp.id + return_var = self._emit_copy(return_var, suggested_name) for prev_output in self._current_fn.outputs: if prev_output.name == return_var.name: # ONNX does not allow duplicate output names. - return_var = self._emit_copy(return_var, f"{return_var}_copy") + return_var = self._emit_copy(return_var, f"{return_var.name}_copy") break if self.returntype is not None: set_type_info(return_var, self.returntype[i])