class_docstr: Neural Network ensemble class.
  
  Parameters
  ----------
  networks : list
      List of the Neural Networks.
  ensemble_fn : function or callable, optional
      Ensemble function to be applied to the predictions of the neural
      network ensemble (default: average predictions).
  num_threads : int, optional
      Number of parallel working threads.
  
  Notes
  -----
  If `ensemble_fn` is set to 'None', the predictions are returned as a list
  with the same length as the number of networks given.
  
  Examples
  --------
  Create a NeuralNetworkEnsemble from the networks. Instead of supplying
  the neural networks as parameter, they can also be loaded from file:
  
  >>> from madmom.models import ONSETS_BRNN_PP
  >>> nn = NeuralNetworkEnsemble.load(ONSETS_BRNN_PP)
  >>> nn  # doctest: +ELLIPSIS
  <madmom.ml.nn.NeuralNetworkEnsemble object at 0x...>
  >>> nn(np.array([[0], [0.5], [1], [0], [1], [2], [0]]))
  ... # doctest: +NORMALIZE_WHITESPACE
  array([0.00116, 0.00213, 0.01428, 0.00729, 0.0088 , 0.21965, 0.00532])
code: def __init__(
      self,
      networks,
      ensemble_fn=average_predictions,
      num_threads=None,
      **kwargs,
  ):
      networks_processor = ParallelProcessor(
          networks, num_threads=num_threads
      )
      super(NeuralNetworkEnsemble, self).__init__(
          (networks_processor, ensemble_fn)
      )
  
file_path: madmom/madmom/ml/nn/__init__.py
imports: from __future__ import absolute_import, division, print_function
  import numpy
  from ...processors import Processor, ParallelProcessor, SequentialProcessor
label_desc: Use image node_id 1 to create a new NeuralNetworkEnsemble object from inherited base classes: SequentialProcessor with example: obj = NeuralNetworkEnsemble(networks, ensemble_fn, num_threads)