def _build(self,
             graph,
             edge_model_kwargs=None,
             node_model_kwargs=None,
             global_model_kwargs=None):
    """Connects the GraphNetwork.

    Args:
      graph: A `graphs.GraphsTuple` containing `Tensor`s. Depending on the block
        options, `graph` may contain `None` fields; but with the default
        configuration, no `None` field is allowed. Moreover, when using the
        default configuration, the features of each nodes, edges and globals of
        `graph` should be concatenable on the last dimension.
      edge_model_kwargs: Optional keyword arguments to pass to
        the edge block model.
      node_model_kwargs: Optional keyword arguments to pass to
        the node block model.
      global_model_kwargs: Optional keyword arguments to pass to
        the global block model.

    Returns:
      An output `graphs.GraphsTuple` with updated edges, nodes and globals.
    """
    node_input = self._edge_block(graph, edge_model_kwargs)
    global_input = self._node_block(node_input, node_model_kwargs)
    return self._global_block(global_input, global_model_kwargs)
Connects the GraphNetwork.

    Args:
      graph: A `graphs.GraphsTuple` containing `Tensor`s. Depending on the block
        options, `graph` may contain `None` fields; but with the default
        configuration, no `None` field is allowed. Moreover, when using the
        default configuration, the features of each nodes, edges and globals of
        `graph` should be concatenable on the last dimension.
      edge_model_kwargs: Optional keyword arguments to pass to
        the edge block model.
      node_model_kwargs: Optional keyword arguments to pass to
        the node block model.
      global_model_kwargs: Optional keyword arguments to pass to
        the global block model.

    Returns:
      An output `graphs.GraphsTuple` with updated edges, nodes and globals.
    
graph_nets/modules.py