code: def _summarize_network_layer_info(layer):
      
      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
docs: 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)