docstr: Create a Node from the given arguments, then return the Node
  wrapped in a Proxy object.
  
  If kind = 'placeholder', then we're creating a Node that
  represents the parameter of a function. If we need to encode
  a default parameter, we use the ``args`` tuple. ``args`` is
  otherwise empty for ``placeholder`` Nodes.
docstr_tok: ["Create","a","Node","from","the","given","arguments",",","then","return","the","Node","wrapped","in","a","Proxy","object",".","If","kind","=","'placeholder","'",",","then","we","'re","creating","a","Node","that","represents","the","parameter","of","a","function",".","If","we","need","to","encode","a","default","parameter",",","we","use","the","``","args","``","tuple",".","``","args","``","is","otherwise","empty","for","``","placeholder","``","Nodes","."]
code: def create_proxy(
      self,
      kind: str,
      target: Target,
      args: Tuple[Any, ...],
      kwargs: Dict[str, Any],
      name: Optional[str] = None,
      type_expr: Optional[Any] = None,
      proxy_factory_fn: Callable[[Node], "Proxy"] = None,
  ):
      """
      Create a Node from the given arguments, then return the Node
      wrapped in a Proxy object.
  
      If kind = 'placeholder', then we're creating a Node that
      represents the parameter of a function. If we need to encode
      a default parameter, we use the ``args`` tuple. ``args`` is
      otherwise empty for ``placeholder`` Nodes.
      """
  
      args_ = self.create_arg(args)
      kwargs_ = self.create_arg(kwargs)
      assert isinstance(args_, tuple)
      assert isinstance(kwargs_, dict)
  
      node = self.create_node(
          kind, target, args_, kwargs_, name, type_expr
      )
  
      if not proxy_factory_fn:
          proxy = self.proxy(node)
      else:
          proxy = proxy_factory_fn(node)
  
      if self.record_stack_traces and not proxy.node.stack_trace:
          user_frame = self._find_user_frame()
          if user_frame:
              summary = traceback.extract_stack(user_frame)
              tb_lines = summary.format()
              # stack_trace would have innermost frame at the bottom
              proxy.node.stack_trace = "".join(tb_lines)
  
      return proxy
  
imports: import enum
  import dis
  import copy
  import sys
  import torch
  import inspect
  import operator
  import traceback
  import collections
  from dataclasses import is_dataclass, fields
  from .graph import magic_methods, reflectable_magic_methods, Graph
  from typing import Tuple, Dict, OrderedDict, Optional, Any, Iterator, Callable
  from .node import Target, Node, Argument, base_types, map_aggregate
  from ._compatibility import compatibility
  from .operator_schemas import check_for_mutable_operation
  import torch.fx.traceback
label_desc: Use image node_id 3 for calling the TracerBase obj's underlying member method code with example usage: obj.create_proxy(kind, target, args, kwargs, name, type_expr, proxy_factory_fn) and returns: proxy