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 __init__(self, evaluator, ensemble_size):
      self.evaluator = evaluator
      self.ensemble_size = ensemble_size
  
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 1 to create a new EnsemblingEvaluator object from inherited base classes: object with example: obj = EnsemblingEvaluator(evaluator, ensemble_size)