Connects the module into the graph.

    If this is not the first time the module has been connected to the graph,
    the Tensors provided here must have the same final dimensions as when called
    the first time, in order for the existing variables to be the correct size
    for the multiplication. The batch size may differ for each connection.

    Args:
      inputs_list: A list of 2D Tensors of rank 2, with leading batch dimension.

    Returns:
      A 2D Tensor of size [batch_size, output_size].

def _build(self, inputs_list):
    """Connects the module into the graph.

    If this is not the first time the module has been connected to the graph,
    the Tensors provided here must have the same final dimensions as when called
    the first time, in order for the existing variables to be the correct size
    for the multiplication. The batch size may differ for each connection.

    Args:
      inputs_list: A list of 2D Tensors of rank 2, with leading batch dimension.

    Returns:
      A 2D Tensor of size [batch_size, output_size].
    """
    outputs = []
    for idx, tensor in enumerate(inputs_list):
      outputs.append(
          Linear(
              self._output_size,
              initializers=self._initializers,
              partitioners=self._partitioners,
              regularizers=self._regularizers,
              # Since we are interpreting this as 'one big linear', we only need
              # one bias.
              use_bias=(idx == 0 and self._use_bias))(tensor))
    return tf.add_n(outputs)