class_docstr: Multi-head network module.
  
  This takes as input a list of N `network_heads`, and returns another network
  whose output is the stacked outputs of each of these network heads separately
  applied to the module input. The dimension of the output is [..., N].
code: def __call__(
      self, inputs: tf.Tensor
  ) -> Union[tf.Tensor, Sequence[tf.Tensor]]:
      outputs = [
          network_head(inputs) for network_head in self._network_heads
      ]
      if isinstance(outputs[0], tfd.Distribution):
          # Cannot stack distributions
          return outputs
      outputs = tf.stack(outputs, axis=-1)
      return outputs
  
file_path: acme/acme/tf/networks/multihead.py
imports: from typing import Callable, Union, Sequence
  from acme import types
  import sonnet
  import tensorflow
  import tensorflow_probability
label_desc: Use image node_id 2 for calling the Multihead obj's underlying member method code with example usage: obj.__call__(inputs) and returns: outputs, outputs