class_docstr: Implementation of an Interaction Network.
  
  An interaction networks computes interactions on the edges based on the
  previous edges features, and on the features of the nodes sending into those
  edges. It then updates the nodes based on the incomming updated edges.
  See https://arxiv.org/abs/1612.00222 for more details.
  
  This model does not update the graph globals, and they are allowed to be
  `None`.
docstr: Connects the InterationNetwork.
  
  Args:
    graph: A `graphs.GraphsTuple` containing `Tensor`s. `graph.globals` can be
      `None`. The features of each node and edge of `graph` must be
      concatenable on the last axis (i.e., the shapes of `graph.nodes` and
      `graph.edges` must match but for their first and last axis).
    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.
  
  Returns:
    An output `graphs.GraphsTuple` with updated edges and nodes.
  
  Raises:
    ValueError: If any of `graph.nodes`, `graph.edges`, `graph.receivers` or
      `graph.senders` is `None`.
code: def _build(
      self, graph, edge_model_kwargs=None, node_model_kwargs=None
  ):
      """Connects the InterationNetwork.
  
      Args:
        graph: A `graphs.GraphsTuple` containing `Tensor`s. `graph.globals` can be
          `None`. The features of each node and edge of `graph` must be
          concatenable on the last axis (i.e., the shapes of `graph.nodes` and
          `graph.edges` must match but for their first and last axis).
        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.
  
      Returns:
        An output `graphs.GraphsTuple` with updated edges and nodes.
  
      Raises:
        ValueError: If any of `graph.nodes`, `graph.edges`, `graph.receivers` or
          `graph.senders` is `None`.
      """
      return self._node_block(
          self._edge_block(graph, edge_model_kwargs), node_model_kwargs
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from graph_nets import _base
  from graph_nets import blocks
  import tensorflow
label_desc: Use image node_id 2 for calling the InteractionNetwork obj's underlying member method code with example usage: obj._build(graph, edge_model_kwargs, node_model_kwargs) and returns: self