@compatibility(is_backward_compatible=True)
def __init__(self, graph: 'Graph', name: str, op: str, target: 'Target', args: Tuple[('Argument', ...)], kwargs: Dict[(str, 'Argument')], return_type: Optional[Any]=None) -> None:
    "\n        Instantiate an instance of ``Node``. Note: most often, you want to use the\n        Graph APIs, i.e. ``Graph.call_module``, ``Graph.call_method``, etc. rather\n        than instantiating a ``Node`` directly.\n\n        Args:\n            graph (Graph): The ``Graph`` to which this ``Node`` should belong.\n\n            name (str): The name to which the output of this ``Node`` should be assigned\n\n            op (str): The opcode for this ``Node``. Can be one of 'placeholder',\n                'call_method', 'call_module', 'call_function', 'get_attr',\n                'output'\n\n            target ('Target'): The target this op should call. See the broader\n                ``Node`` docstring for more details.\n\n            args (Tuple['Argument']): The args to be passed to ``target``\n\n            kwargs (Dict[str, 'Argument']): The kwargs to be passed to ``target``\n\n            return_type (Optional[Any]): The python type expression representing the\n                type of the output of this node. This field can be used for\n                annotation of values in the generated code or for other types\n                of analyses.\n        "
    self.graph = graph
    self.name = name
    assert (op in ['placeholder', 'call_method', 'call_module', 'call_function', 'get_attr', 'output', 'root'])
    self.op = op
    if (op == 'call_function'):
        if (not callable(target)):
            raise ValueError(f"Node [graph = {graph}, name = '{name}'] target {target} has type {torch.typename(target)} but a Callable is expected")
    elif (not isinstance(target, str)):
        raise ValueError(f"Node [graph = {graph}, name = '{name}'] target {target} has type {torch.typename(target)} but a str is expected")
    self.target = target
    self._input_nodes: Dict[(Node, None)] = {}
    self.__update_args_kwargs(map_arg(args, (lambda x: x)), map_arg(kwargs, (lambda x: x)))
    self.users: Dict[('Node', None)] = {}
    self.type: Optional[Any] = return_type
    self._prev = self
    self._next = self
    self._erased = False
    self._repr_fn: Optional[Callable[([Node], str)]] = None
    self._stack_trace: Optional[str] = None
    self.meta: Dict[(str, Any)] = {}
Instantiate an instance of ``Node``. Note: most often, you want to use the
Graph APIs, i.e. ``Graph.call_module``, ``Graph.call_method``, etc. rather
than instantiating a ``Node`` directly.

Args:
    graph (Graph): The ``Graph`` to which this ``Node`` should belong.

    name (str): The name to which the output of this ``Node`` should be assigned

    op (str): The opcode for this ``Node``. Can be one of 'placeholder',
        'call_method', 'call_module', 'call_function', 'get_attr',
        'output'

    target ('Target'): The target this op should call. See the broader
        ``Node`` docstring for more details.

    args (Tuple['Argument']): The args to be passed to ``target``

    kwargs (Dict[str, 'Argument']): The kwargs to be passed to ``target``

    return_type (Optional[Any]): The python type expression representing the
        type of the output of this node. This field can be used for
        annotation of values in the generated code or for other types
        of analyses.
@compatibility(is_backward_compatible=True)
def __init__(self, graph: 'Graph', name: str, op: str, target: 'Target', args: Tuple[('Argument', ...)], kwargs: Dict[(str, 'Argument')], return_type: Optional[Any]=None) -> None:
    "\n        Instantiate an instance of ``Node``. Note: most often, you want to use the\n        Graph APIs, i.e. ``Graph.call_module``, ``Graph.call_method``, etc. rather\n        than instantiating a ``Node`` directly.\n\n        Args:\n            graph (Graph): The ``Graph`` to which this ``Node`` should belong.\n\n            name (str): The name to which the output of this ``Node`` should be assigned\n\n            op (str): The opcode for this ``Node``. Can be one of 'placeholder',\n                'call_method', 'call_module', 'call_function', 'get_attr',\n                'output'\n\n            target ('Target'): The target this op should call. See the broader\n                ``Node`` docstring for more details.\n\n            args (Tuple['Argument']): The args to be passed to ``target``\n\n            kwargs (Dict[str, 'Argument']): The kwargs to be passed to ``target``\n\n            return_type (Optional[Any]): The python type expression representing the\n                type of the output of this node. This field can be used for\n                annotation of values in the generated code or for other types\n                of analyses.\n        "
    self.graph = graph
    self.name = name
    assert (op in ['placeholder', 'call_method', 'call_module', 'call_function', 'get_attr', 'output', 'root'])
    self.op = op
    if (op == 'call_function'):
        if (not callable(target)):
            raise ValueError(f"Node [graph = {graph}, name = '{name}'] target {target} has type {torch.typename(target)} but a Callable is expected")
    elif (not isinstance(target, str)):
        raise ValueError(f"Node [graph = {graph}, name = '{name}'] target {target} has type {torch.typename(target)} but a str is expected")
    self.target = target
    self._input_nodes: Dict[(Node, None)] = {}
    self.__update_args_kwargs(map_arg(args, (lambda x: x)), map_arg(kwargs, (lambda x: x)))
    self.users: Dict[('Node', None)] = {}
    self.type: Optional[Any] = return_type
    self._prev = self
    self._next = self
    self._erased = False
    self._repr_fn: Optional[Callable[([Node], str)]] = None
    self._stack_trace: Optional[str] = None
    self.meta: Dict[(str, Any)] = {}