class_docstr: Decorating for ensembled evaluation.
  
  Calls the decorated evaluator multiple times so as to evaluate according to
  multiple orderings. The likelihoods from different orderings are averaged
  in probability space, which gives a better result than averaging in log space
  (which would correspond to a geometric mean that is unnormalized and tends
  to waste probability mass).
code: def __call__(self, pianoroll):
      lls = [
          self.evaluator(pianoroll) for _ in range(self.ensemble_size)
      ]
      return logsumexp(lls, b=1.0 / len(lls), axis=0)
  
imports: import time
  from magenta.models.coconet import lib_tfutil
  from magenta.models.coconet import lib_util
  import numpy
  from scipy.misc import logsumexp
  import tensorflow.compat.v1
label_desc: Use image node_id 2 for calling the EnsemblingEvaluator obj's underlying member method code with example usage: obj.__call__(pianoroll) and returns: logsumexp