def ops(i, o):
    """
    WRITEME

    Parameters
    ----------
    i : list
        Input L{Variable}s.
    o : list
        Output L{Variable}s.

    Returns
    -------
    object
        The set of ops that are contained within the subgraph that lies
        between i and o, including the owners of the L{Variable}s in o and
        intermediary ops between i and o, but not the owners of the L{Variable}s
        in i.

    """
    ops = set()
    variables, orphans = variables_and_orphans(i, o)
    for r in variables:
        if r not in i and r not in orphans:
            if r.owner is not None:
                ops.add(r.owner)
    return ops
dataset/ETHPy150Open rizar/attention-lvcsr/libs/Theano/theano/gof/graph.py/ops/original