<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def subdivide_with(self, branches, join_function, name='mixed'):
 """Branches this pretty tensor and uses an explicit join function. This should be used in a with statement, for example to fork and join with a sum: with pt.subdivide_with(2, tf.add_n) as [a, b]: Args: branches: The number of branches. join_function: A function to use when rejoining. name: A base name for this branch. Returns: A python context manager to use in a with statement that supplies a sequence of tensors with one per branch. Raises: ValueError: if join_function is None. """

    return _subdivide_context(self, branches, join_function, name)