'Reshuffles per-expert `Tensor`s to produce per-datashard `Tensor`s.
Dispatch must have been called at least once first.
The dimensions of all input and output `Tensor`s match, except for
dimension 0.  In dimension 0, the input `Tensor`s match the corresponding
outputs of `Dispatch`, and the output `Tensor`s match the corresponding
`gates` `Tensor`s which were passed to the constructor.
Args:
x_tensors: a list of `Tensor`s, one per expert.
Returns:
a list of `Tensor`s, one per datashard.'

def Combine(self, x_tensors):

    parts = self._model_parallelism(tf.split, x_tensors, self._part_sizes_by_expert)
    d_tensors = self._data_parallelism(tf.dynamic_stitch, self._stitch_indices, TransposeListOfLists(parts))
    return d_tensors
