class_docstr: A graph consists of connected Blocks, or Heads.
  
  # Arguments
      inputs: A list of input node(s) for the Graph.
      outputs: A list of output node(s) for the Graph.
code: def __init__(self, inputs=None, outputs=None, **kwargs):
      super().__init__(**kwargs)
      self.inputs = nest.flatten(inputs)
      self.outputs = nest.flatten(outputs)
      self._node_to_id = {}
      self._nodes = []
      self.blocks = []
      self._block_to_id = {}
      if inputs and outputs:
          self._build_network()
  
      # Temporary attributes
      self.epochs = None
      self.num_samples = None
  
imports: import keras_tuner
  from tensorflow import keras
  from tensorflow import nest
  from autokeras import blocks
  from autokeras import keras_layers
  from autokeras import nodes
  from autokeras.engine import head
  from autokeras.engine import serializable
  from autokeras.utils import io_utils
label_desc: Use image node_id 1 to create a new Graph object from inherited base classes: keras_tuner, serializable with example: obj = Graph(inputs, outputs)