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: Insert the new_layer, whose parameter is stored in a Keras layer
  structure new_keras_layer, after the layer whose position is layer_idx.
docstr_tok: ["Insert","the","new_layer",",","whose","parameter","is","stored","in","a","Keras","layer","structure","new_keras_layer",",","after","the","layer","whose","position","is","layer_idx","."]
code: def _insert_layer_after(self, layer_idx, new_layer, new_keras_layer):
      """Insert the new_layer, whose parameter is stored in a Keras layer
      structure new_keras_layer, after the layer whose position is layer_idx.
      """
      layer = self.layer_list[layer_idx]
      self.layer_list.insert(layer_idx + 1, new_layer)
      self.keras_layer_map[new_layer] = new_keras_layer
      successors = self.get_successors(layer)
      # add edge layer -> new_layer
      self._add_edge(layer, new_layer)
      # add edges new_layer -> layer_successor, remove layer -> successor
      for succ in successors:
          self._add_edge(new_layer, succ)
          self._remove_edge(layer, succ)
      # if layer is an output layer, change the output layer tag
      if layer in self.output_layers:
          idx = self.output_layers.index(layer)
          self.output_layers[idx] = new_layer
  
imports: import keras
  import numpy
  import six
  from distutils.version import StrictVersion
label_desc: Use image node_id 28 for calling the NetGraph obj's underlying member method code with example usage: obj._insert_layer_after(layer_idx, new_layer, new_keras_layer) without return types