code: def add_layer(self, layer, input_node_id):
          
          if isinstance(input_node_id, Iterable):
              layer.input = list(map(lambda x: self.node_list[x], input_node_id))
              output_node_id = self._add_node(Node(layer.output_shape))
              for node_id in input_node_id:
                  self._add_edge(layer, node_id, output_node_id)
  
          else:
              layer.input = self.node_list[input_node_id]
              output_node_id = self._add_node(Node(layer.output_shape))
              self._add_edge(layer, input_node_id, output_node_id)
  
          layer.output = self.node_list[output_node_id]
          return output_node_id
docs: Add a layer to the Graph.
          Args:
              layer: An instance of the subclasses of StubLayer in layers.py.
              input_node_id: An integer. The ID of the input node of the layer.
          Returns:
              output_node_id: An integer. The ID of the output node of the layer.