code: def _summarize_network_layer_info(layer):
      """
      Args:
      layer - an MLModel NeuralNetwork Layer protobuf message
      Returns:
      layer_type : str - type of layer
      layer_name : str - name of the layer
      layer_inputs : list[str] - a list of strings representing input blobs of the layer
      layer_outputs : list[str] - a list of strings representing output blobs of the layer
      layer_field_content : list[(str, str)] - a list of two-tuple of (parameter_name, content)
      """
      layer_type_str = layer.WhichOneof("layer")
  
      layer_name = layer.name
      layer_inputs = list(layer.input)
      layer_outputs = list(layer.output)
  
      typed_layer = getattr(layer, layer_type_str)
      layer_field_names = [
          l.name for l in typed_layer.DESCRIPTOR.fields
      ]
      layer_field_content = []
  
      for name in layer_field_names:
          field = getattr(typed_layer, name)
          summary_str = ""
          if type(field) == _NeuralNetwork_pb2.LSTMWeightParams:
              summary_str = _get_lstm_weight_param_summary(field)
          elif type(field) == _NeuralNetwork_pb2.WeightParams:
              summary_str = _get_weight_param_summary(field)
          else:
              field_str = str(field)
              if len(field_str) > 0:
                  summary_str = field_str.replace("\n", " ")
          if len(summary_str) > 0:
              layer_field_content.append([name, summary_str])
  
      return (
          layer_type_str,
          layer_name,
          layer_inputs,
          layer_outputs,
          layer_field_content,
      )
  
file_path: coremltools/coremltools/models/neural_network/spec_inspection_utils.py
imports: from ...proto import NeuralNetwork_pb2
label_desc: Use image node_id 4 for calling a global function with example usage: _summarize_network_layer_info(layer) and returns: layer_type_str,  layer_name,  layer_inputs,  layer_outputs,  layer_field_content