parameters: (from_op, tensor, sources)
return_statement: return "??"
docstring: Find one path from `from_op` to `tensor`, ignoring `sources`.
  
    Args:
      from_op: A `tf.Operation`.
      tensor: A `tf.Operation` or `tf.Tensor`.
      sources: A list of `tf.Tensor`.
  
    Returns:
      A python string containing the path, or "??" if none is found.
docstring_summary: Find one path from `from_op` to `tensor`, ignoring `sources`.
docstring_tokens: Find one path from from_op to tensor ignoring sources .
function: def _path_from(from_op, tensor, sources):
    """Find one path from `from_op` to `tensor`, ignoring `sources`.
  
    Args:
      from_op: A `tf.Operation`.
      tensor: A `tf.Operation` or `tf.Tensor`.
      sources: A list of `tf.Tensor`.
  
    Returns:
      A python string containing the path, or "??" if none is found.
    """
    if isinstance(from_op, ops.Tensor):
      from_op = from_op.op
  
    visited_ops = set(x.op for x in sources)
    ops_to_visit = [_as_operation(tensor)]
    some_op_output = {}
    while ops_to_visit:
      op = ops_to_visit.pop()
      if op in visited_ops:
        continue
      visited_ops.add(op)
      if op == from_op:
        path_op = op
        path = [path_op]
        final_op = _as_operation(tensor)
        while path_op != final_op:
          path_op = some_op_output[path_op]
          path.append(path_op)
        return " <- ".join("%s (%s)" % (x.name, x.type) for x in reversed(path))
      else:
        for inp in graph_inputs(op):
          if inp not in visited_ops and inp not in sources:
            some_op_output[inp] = op
            ops_to_visit.append(inp)
    return "??"
function_tokens: def _path_from ( from_op , tensor , sources ) : if isinstance ( from_op , ops . Tensor ) : from_op = from_op . op visited_ops = set ( x . op for x in sources ) ops_to_visit = [ _as_operation ( tensor ) ] some_op_output = { } while ops_to_visit : op = ops_to_visit . pop ( ) if op in visited_ops : continue visited_ops . add ( op ) if op == from_op : path_op = op path = [ path_op ] final_op = _as_operation ( tensor ) while path_op != final_op : path_op = some_op_output [ path_op ] path . append ( path_op ) return " <- " . join ( "%s (%s)" % ( x . name , x . type ) for x in reversed ( path ) ) else : for inp in graph_inputs ( op ) : if inp not in visited_ops and inp not in sources : some_op_output [ inp ] = op ops_to_visit . append ( inp ) return "??"