class_docstr: Attributes:
  layer_list - a list of layer names in the Keras model
  connection_map - a map where the key is a layer, the value is a list of its successors
  reverse_connection_map - a map where the key is a layer, the value is a list of its predecessors
  keras_layer_map - a map where the key is a layer name, the value is Keras layer
  model - a reference of the keras model.
  blob_names - blob names for each one of the edge.
class_docstr_tok: ["Attributes",":","layer_list","-","a","list","of","layer","names","in","the","Keras","model","connection_map","-","a","map","where","the","key","is","a","layer",",","the","value","is","a","list","of","its","successors","reverse_connection_map","-","a","map","where","the","key","is","a","layer",",","the","value","is","a","list","of","its","predecessors","keras_layer_map","-","a","map","where","the","key","is","a","layer","name",",","the","value","is","Keras","layer","model","-","a","reference","of","the","keras","model",".","blob_names","-","blob","names","for","each","one","of","the","edge","."]
docstr: Generate blob names for each one of the edge.  At this time, Keras does not
  support "fork" operation (a layer with more than 1 blob output). So we just
  use names of the src layer to identify a blob.  We also assume all neural
  networks are singly-connected graphs - which should be the case.
docstr_tok: ["Generate","blob","names","for","each","one","of","the","edge",".","At","this","time",",","Keras","does","not","support","``","fork","''","operation","(","a","layer","with","more","than","1","blob","output",")",".","So","we","just","use","names","of","the","src","layer","to","identify","a","blob",".","We","also","assume","all","neural","networks","are","singly-connected","graphs","-","which","should","be","the","case","."]
code: def generate_blob_names(self):
      """
      Generate blob names for each one of the edge.  At this time, Keras does not
      support "fork" operation (a layer with more than 1 blob output). So we just
      use names of the src layer to identify a blob.  We also assume all neural
      networks are singly-connected graphs - which should be the case.
      """
      # generate blob names that represent edges in blob_name_map
      # because of the InputLayers, input blobs are also generated.
  
      # Generate each layer's input / output blob names
      for layer in self.layer_list:
          keras_layer = self.keras_layer_map[layer]
          # no need to generate InputLayers' blobs
          if not isinstance(
              keras_layer, _keras.engine.topology.InputLayer
          ):
              # layer's input blob names depend on predecessors
              preds = self.get_predecessors(layer)
              for pred in preds:
                  blob_name = pred + "_output"
                  _insert_to_dict(self.layers_inputs, layer, blob_name)
              # layer's output blob is just named after itself
              blob_name = layer + "_output"
              _insert_to_dict(self.layers_outputs, layer, blob_name)
  
imports: import keras
  import numpy
label_desc: Use image node_id 10 for calling the NetGraph obj's underlying member method code with example usage: obj.generate_blob_names() without return types