<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ensemble(subresults: List[Dict[str, torch.Tensor]]) -> torch.Tensor: """ Identifies the best prediction given the results from the submodels. Parameters subresults : List[Dict[str, torch.Tensor]] Results of each submodel. Returns ------- The index of the best submodel. """


    # Choose the highest average confidence span.

    span_start_probs = sum(subresult['span_start_probs'] for subresult in subresults) / len(subresults)
    span_end_probs = sum(subresult['span_end_probs'] for subresult in subresults) / len(subresults)
    return get_best_span(span_start_probs.log(), span_end_probs.log())