@@ -791,6 +791,8 @@ def _override_with_symbolic_value_info_proto(self, onnx_model: onnx.ModelProto):
791
791
continue
792
792
for i , input_info in enumerate (onnx_model .graph .input ):
793
793
if input_info .name == input .debugName ():
794
+ # See NOTE: _C.Value re-naming.
795
+ value_info .name = input_info .name
794
796
onnx_model .graph .input .insert (i , value_info )
795
797
onnx_model .graph .input .remove (input_info )
796
798
break
@@ -804,6 +806,8 @@ def _override_with_symbolic_value_info_proto(self, onnx_model: onnx.ModelProto):
804
806
continue
805
807
for i , output_info in enumerate (onnx_model .graph .output ):
806
808
if output_info .name == output .debugName ():
809
+ # See NOTE: _C.Value re-naming.
810
+ value_info .name = output_info .name
807
811
onnx_model .graph .output .insert (i , value_info )
808
812
onnx_model .graph .output .remove (output_info )
809
813
break
@@ -920,6 +924,12 @@ def generate_maingraph_value_info_proto(self) -> Mapping[str, onnx.ValueInfoProt
920
924
for torch_value , tensor in self ._value_to_tensor .items ():
921
925
if (value_info := tensor .value_info ()) is None :
922
926
continue
927
+ # NOTE: _C.Value re-naming.
928
+ # _C.Value's debugName is unstable.
929
+ # When duplicated names are encountered, all names involved are updated by
930
+ # TorchScript naming strategy. Hence the previous name stored in value_info
931
+ # can be outdated.
932
+ value_info .name = torch_value .debugName ()
923
933
named_value_info [torch_value .debugName ()] = value_info
924
934
return named_value_info
925
935
0 commit comments