'Args:
input (InputSource): the input to use. Must have ``size()``.
infs (list[Inferencer]): list of :class:`Inferencer` to run.
extra_hooks (list[SessionRunHook]): extra :class:`SessionRunHook` to run with the evaluation.'

def __init__(self, input, infs, extra_hooks=None):

    self._input_source = input
    if (not isinstance(infs, list)):
        self.infs = [infs]
    else:
        self.infs = infs
    for v in self.infs:
        assert isinstance(v, Inferencer), v
    try:
        self._size = input.size()
    except NotImplementedError:
        raise ValueError('Input    used    in    InferenceRunner    must    have    a    size!')
    logger.info('InferenceRunner    will    eval    on    an    InputSource    of    size    {}'.format(self._size))
    if (extra_hooks is None):
        extra_hooks = []
    self._extra_hooks = extra_hooks
