Skip to content

Segmentation fault : onnxruntime infer all outputs include all nodes with python API #10044

@wangxudong-cq

Description

@wangxudong-cq

Describe the bug
Segmentation fault (core dumped)

System information

  • OS Platform and Distribution: Ubuntu 18.04.5 LTS
  • ONNX Runtime installed from (source or binary): binary
  • ONNX Runtime version: Version: 1.6.0
  • Python version: Python 3.8.10

To Reproduce
model:https://github.com/onnx/models/blob/master/vision/classification/inception_and_googlenet/inception_v1/model/inception-v1-9.onnx

#test.py

  import onnx
  import onnx.numpy_helper
  import onnxruntime as ort
  from collections import OrderedDict
  
  
  def readArrayFromPB(file):
      tensor = onnx.TensorProto()
      with open(file, "rb") as f:
          tensor.ParseFromString(f.read())
      array = onnx.numpy_helper.to_array(tensor)
      return array
  
  def writeArrayToPB(file, array):
      tensor = onnx.numpy_helper.from_array(array)
      with open(file, "wb") as f:
          f.write(tensor.SerializeToString())
  
  if __name__=="__main__":
      model = onnx.load_model("/home/wang/wangxudong/RPP_iTest/netmodel/save_model_all_nodes/inception-v1-9/inception-v1-9.onnx")
  
      OutputNameLists = []
      for i in range(len(model.graph.node)):
          OutputNameLists.extend(model.graph.node[i].output)    
  
      OutputNameList = []
      for i in range(len(model.graph.output)):
          OutputNameList.append(model.graph.output[i].name)
  
      all_outs = list(set(OutputNameLists) - set(OutputNameList))
      all_outs = [onnx.ValueInfoProto(name=x) for x in all_outs]
      print("all_outs:{0}".format(all_outs))
  
      model.graph.output.extend(all_outs)
  
      ort_session = ort.InferenceSession(model.SerializeToString())
  
      ort_ins = {}
      ort_ins.update({"data_0":readArrayFromPB("/home/wang/wangxudong/RPP_iTest/netmodel/save_model_all_nodes/inception-v1-9/test_data_set_0/input_0.pb")})
      
      # ort_outnames = ["prob_1"]
      ort_outnames = [x.name for x in ort_session.get_outputs()]
      print("ort_outnames:{0}".format(ort_outnames))
      
      ort_array = ort_session.run(ort_outnames, ort_ins)
  
      ort_outs = OrderedDict(zip(ort_outnames, ort_array))
      ort_outshapes = {}
      for k,v in ort_outs.items():
          writeArrayToPB("/home/wang/wangxudong/RPP_iTest/netmodel/save_model_all_outs/inception-v1-9/prob_1.pb",v)
          ort_outshapes.update({k:v.shape})
      print(ort_outshapes)

Expected behavior
onnxruntime infer success

Screenshots
(ubuntu) wang@VM-1-159-ubuntu:~/wangxudong/RPP_iTest/netmodel$ python3 test.py
all_outs:[name: "loss3_classifier_1"
, name: "conv1_7x7_s2_1"
, name: "inception_4b_5x5_reduce_2"
, name: "inception_4b_5x5_1"
, name: "inception_4c_1x1_2"
, name: "inception_4c_3x3_reduce_2"
, name: "pool3_3x3_s2_1"
, name: "inception_5b_pool_proj_2"
, name: "inception_5a_5x5_2"
, name: "inception_4c_5x5_2"
, name: "inception_3a_pool_1"
, name: "pool1_norm1_1"
, name: "inception_4c_3x3_1"
, name: "inception_3a_3x3_reduce_2"
, name: "inception_4d_pool_proj_2"
, name: "inception_4e_pool_1"
, name: "_pool5/7x7_s1_mask_1"
, name: "inception_4b_3x3_reduce_2"
, name: "pool5_7x7_s1_1"
, name: "inception_4a_5x5_1"
, name: "inception_3a_5x5_1"
, name: "inception_4d_5x5_reduce_1"
, name: "inception_5b_5x5_2"
, name: "inception_4d_5x5_reduce_2"
, name: "inception_3b_5x5_reduce_2"
, name: "inception_4b_1x1_2"
, name: "inception_4a_1x1_1"
, name: "inception_4b_3x3_1"
, name: "inception_3a_1x1_1"
, name: "inception_4d_3x3_1"
, name: "pool1_3x3_s2_1"
, name: "inception_5b_output_1"
, name: "inception_5a_5x5_reduce_2"
, name: "inception_4d_1x1_1"
, name: "inception_4e_5x5_1"
, name: "conv2_3x3_1"
, name: "inception_4e_1x1_2"
, name: "inception_4d_3x3_reduce_1"
, name: "inception_3b_5x5_2"
, name: "inception_4d_3x3_reduce_2"
, name: "inception_4c_pool_1"
, name: "inception_5b_1x1_1"
, name: "inception_5a_3x3_reduce_2"
, name: "inception_5a_output_1"
, name: "inception_4a_3x3_2"
, name: "inception_5a_pool_proj_1"
, name: "inception_3a_5x5_reduce_2"
, name: "inception_3a_pool_proj_1"
, name: "inception_5a_pool_1"
, name: "inception_4e_pool_proj_1"
, name: "conv2_3x3_reduce_1"
, name: "inception_4c_pool_proj_1"
, name: "inception_4d_3x3_2"
, name: "inception_3b_3x3_reduce_2"
, name: "inception_4a_5x5_reduce_1"
, name: "inception_4a_3x3_1"
, name: "inception_4c_output_1"
, name: "pool2_3x3_s2_1"
, name: "inception_4e_3x3_1"
, name: "inception_4e_pool_proj_2"
, name: "conv2_3x3_2"
, name: "inception_3b_pool_1"
, name: "conv2_norm2_1"
, name: "inception_5b_3x3_reduce_2"
, name: "inception_4a_3x3_reduce_1"
, name: "inception_5a_pool_proj_2"
, name: "conv1_7x7_s2_2"
, name: "inception_3a_pool_proj_2"
, name: "inception_3a_3x3_1"
, name: "inception_5b_5x5_reduce_2"
, name: "inception_4b_5x5_2"
, name: "inception_4e_5x5_reduce_1"
, name: "inception_4b_pool_proj_1"
, name: "inception_4c_3x3_reduce_1"
, name: "inception_5a_5x5_1"
, name: "inception_4a_pool_proj_1"
, name: "inception_4a_5x5_reduce_2"
, name: "inception_4a_1x1_2"
, name: "inception_5a_3x3_reduce_1"
, name: "inception_5b_1x1_2"
, name: "inception_4c_5x5_reduce_2"
, name: "inception_4c_3x3_2"
, name: "inception_4e_3x3_reduce_2"
, name: "inception_5b_pool_proj_1"
, name: "inception_3a_5x5_reduce_1"
, name: "inception_3a_5x5_2"
, name: "inception_3b_pool_proj_1"
, name: "inception_3b_pool_proj_2"
, name: "OC2_DUMMY_0"
, name: "inception_4e_output_1"
, name: "inception_4b_pool_proj_2"
, name: "inception_3b_output_1"
, name: "inception_4b_3x3_2"
, name: "inception_4a_3x3_reduce_2"
, name: "inception_4a_5x5_2"
, name: "inception_4e_1x1_1"
, name: "inception_3b_5x5_reduce_1"
, name: "inception_4e_5x5_reduce_2"
, name: "inception_3b_5x5_1"
, name: "inception_5b_pool_1"
, name: "inception_3a_3x3_2"
, name: "inception_3a_3x3_reduce_1"
, name: "inception_5b_5x5_reduce_1"
, name: "inception_4d_5x5_1"
, name: "inception_5b_3x3_1"
, name: "inception_4d_pool_proj_1"
, name: "inception_4b_1x1_1"
, name: "inception_3a_output_1"
, name: "inception_4b_3x3_reduce_1"
, name: "inception_3b_3x3_2"
, name: "inception_5a_1x1_1"
, name: "inception_4d_1x1_2"
, name: "inception_3b_1x1_2"
, name: "inception_4c_5x5_1"
, name: "inception_5b_3x3_reduce_1"
, name: "inception_3b_3x3_reduce_1"
, name: "inception_4b_output_1"
, name: "inception_5a_3x3_2"
, name: "inception_4d_pool_1"
, name: "inception_4d_output_1"
, name: "inception_4e_3x3_reduce_1"
, name: "OC2_DUMMY_2"
, name: "inception_4a_pool_1"
, name: "inception_4c_5x5_reduce_1"
, name: "inception_4a_output_1"
, name: "inception_4c_1x1_1"
, name: "pool4_3x3_s2_1"
, name: "inception_3a_1x1_2"
, name: "inception_4b_5x5_reduce_1"
, name: "inception_4d_5x5_2"
, name: "inception_4a_pool_proj_2"
, name: "conv2_3x3_reduce_2"
, name: "inception_5a_1x1_2"
, name: "inception_5b_3x3_2"
, name: "inception_3b_1x1_1"
, name: "inception_5a_5x5_reduce_1"
, name: "pool5_7x7_s1_2"
, name: "inception_5a_3x3_1"
, name: "inception_4e_5x5_2"
, name: "inception_3b_3x3_1"
, name: "inception_5b_5x5_1"
, name: "inception_4c_pool_proj_2"
, name: "inception_4b_pool_1"
, name: "inception_4e_3x3_2"
]
ort_outnames:['prob_1', 'loss3_classifier_1', 'conv1_7x7_s2_1', 'inception_4b_5x5_reduce_2', 'inception_4b_5x5_1', 'inception_4c_1x1_2', 'inception_4c_3x3_reduce_2', 'pool3_3x3_s2_1', 'inception_5b_pool_proj_2', 'inception_5a_5x5_2', 'inception_4c_5x5_2', 'inception_3a_pool_1', 'pool1_norm1_1', 'inception_4c_3x3_1', 'inception_3a_3x3_reduce_2', 'inception_4d_pool_proj_2', 'inception_4e_pool_1', '_pool5/7x7_s1_mask_1', 'inception_4b_3x3_reduce_2', 'pool5_7x7_s1_1', 'inception_4a_5x5_1', 'inception_3a_5x5_1', 'inception_4d_5x5_reduce_1', 'inception_5b_5x5_2', 'inception_4d_5x5_reduce_2', 'inception_3b_5x5_reduce_2', 'inception_4b_1x1_2', 'inception_4a_1x1_1', 'inception_4b_3x3_1', 'inception_3a_1x1_1', 'inception_4d_3x3_1', 'pool1_3x3_s2_1', 'inception_5b_output_1', 'inception_5a_5x5_reduce_2', 'inception_4d_1x1_1', 'inception_4e_5x5_1', 'conv2_3x3_1', 'inception_4e_1x1_2', 'inception_4d_3x3_reduce_1', 'inception_3b_5x5_2', 'inception_4d_3x3_reduce_2', 'inception_4c_pool_1', 'inception_5b_1x1_1', 'inception_5a_3x3_reduce_2', 'inception_5a_output_1', 'inception_4a_3x3_2', 'inception_5a_pool_proj_1', 'inception_3a_5x5_reduce_2', 'inception_3a_pool_proj_1', 'inception_5a_pool_1', 'inception_4e_pool_proj_1', 'conv2_3x3_reduce_1', 'inception_4c_pool_proj_1', 'inception_4d_3x3_2', 'inception_3b_3x3_reduce_2', 'inception_4a_5x5_reduce_1', 'inception_4a_3x3_1', 'inception_4c_output_1', 'pool2_3x3_s2_1', 'inception_4e_3x3_1', 'inception_4e_pool_proj_2', 'conv2_3x3_2', 'inception_3b_pool_1', 'conv2_norm2_1', 'inception_5b_3x3_reduce_2', 'inception_4a_3x3_reduce_1', 'inception_5a_pool_proj_2', 'conv1_7x7_s2_2', 'inception_3a_pool_proj_2', 'inception_3a_3x3_1', 'inception_5b_5x5_reduce_2', 'inception_4b_5x5_2', 'inception_4e_5x5_reduce_1', 'inception_4b_pool_proj_1', 'inception_4c_3x3_reduce_1', 'inception_5a_5x5_1', 'inception_4a_pool_proj_1', 'inception_4a_5x5_reduce_2', 'inception_4a_1x1_2', 'inception_5a_3x3_reduce_1', 'inception_5b_1x1_2', 'inception_4c_5x5_reduce_2', 'inception_4c_3x3_2', 'inception_4e_3x3_reduce_2', 'inception_5b_pool_proj_1', 'inception_3a_5x5_reduce_1', 'inception_3a_5x5_2', 'inception_3b_pool_proj_1', 'inception_3b_pool_proj_2', 'OC2_DUMMY_0', 'inception_4e_output_1', 'inception_4b_pool_proj_2', 'inception_3b_output_1', 'inception_4b_3x3_2', 'inception_4a_3x3_reduce_2', 'inception_4a_5x5_2', 'inception_4e_1x1_1', 'inception_3b_5x5_reduce_1', 'inception_4e_5x5_reduce_2', 'inception_3b_5x5_1', 'inception_5b_pool_1', 'inception_3a_3x3_2', 'inception_3a_3x3_reduce_1', 'inception_5b_5x5_reduce_1', 'inception_4d_5x5_1', 'inception_5b_3x3_1', 'inception_4d_pool_proj_1', 'inception_4b_1x1_1', 'inception_3a_output_1', 'inception_4b_3x3_reduce_1', 'inception_3b_3x3_2', 'inception_5a_1x1_1', 'inception_4d_1x1_2', 'inception_3b_1x1_2', 'inception_4c_5x5_1', 'inception_5b_3x3_reduce_1', 'inception_3b_3x3_reduce_1', 'inception_4b_output_1', 'inception_5a_3x3_2', 'inception_4d_pool_1', 'inception_4d_output_1', 'inception_4e_3x3_reduce_1', 'OC2_DUMMY_2', 'inception_4a_pool_1', 'inception_4c_5x5_reduce_1', 'inception_4a_output_1', 'inception_4c_1x1_1', 'pool4_3x3_s2_1', 'inception_3a_1x1_2', 'inception_4b_5x5_reduce_1', 'inception_4d_5x5_2', 'inception_4a_pool_proj_2', 'conv2_3x3_reduce_2', 'inception_5a_1x1_2', 'inception_5b_3x3_2', 'inception_3b_1x1_1', 'inception_5a_5x5_reduce_1', 'pool5_7x7_s1_2', 'inception_5a_3x3_1', 'inception_4e_5x5_2', 'inception_3b_3x3_1', 'inception_5b_5x5_1', 'inception_4c_pool_proj_2', 'inception_4b_pool_1', 'inception_4e_3x3_2']
Segmentation fault (core dumped)

Metadata

Metadata

Assignees

No one assigned

    Labels

    apiissues related to all other APIs: C, C++, Python, etc.core runtimeissues related to core runtimefeature requestrequest for unsupported feature or enhancement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions