评价此页

PropagateUnbackedSymInts#

class torch.fx.experimental.symbolic_shapes.PropagateUnbackedSymInts(module, garbage_collect_values=True, graph=None)[source]#
boxed_run(args_list)[source]#

通过解释执行 module 并返回结果。这使用了“boxed”调用约定,您传递一个参数列表,解释器将清除该列表。这确保了输入张量能被及时解除分配。

注意

此 API 的向后兼容性得到保证。

call_function(target, args, kwargs)[source]#

执行一个 call_function 节点并返回结果。

参数
  • target (Target) – 此节点的调用目标。有关语义的详细信息,请参阅 Node

  • args (Tuple) – 此调用的位置参数元组

  • kwargs (Dict) – 此调用的关键字参数字典

返回类型

任何

Return

Any: 函数调用返回的值

注意

此 API 的向后兼容性得到保证。

call_method(target, args, kwargs)[source]#

执行一个 call_method 节点并返回结果。

参数
  • target (Target) – 此节点的调用目标。有关语义的详细信息,请参阅 Node

  • args (Tuple) – 此调用的位置参数元组

  • kwargs (Dict) – 此调用的关键字参数字典

返回类型

任何

Return

Any: 方法调用返回的值

注意

此 API 的向后兼容性得到保证。

call_module(target, args, kwargs)[source]#

执行一个 call_module 节点并返回结果。

参数
  • target (Target) – 此节点的调用目标。有关语义的详细信息,请参阅 Node

  • args (Tuple) – 此调用的位置参数元组

  • kwargs (Dict) – 此调用的关键字参数字典

返回类型

任何

Return

Any: 模块调用返回的值

注意

此 API 的向后兼容性得到保证。

fetch_args_kwargs_from_env(n)[source]#

从当前执行环境中获取节点 n 的具体 argskwargs 值。

参数

n (Node) – 应从中获取 argskwargs 的节点。

返回

argskwargs 包含 n 的具体值。

返回类型

Tuple[Tuple, Dict]

注意

此 API 的向后兼容性得到保证。

fetch_attr(target)[source]#

self.moduleModule 层级结构中获取一个属性。

参数

target (str) – 要获取的属性的完全限定名

返回

属性的值。

返回类型

任何

注意

此 API 的向后兼容性得到保证。

get_attr(target, args, kwargs)[source]#

执行一个 get_attr 节点。将从 self.moduleModule 层级结构中检索属性值。

参数
  • target (Target) – 此节点的调用目标。有关语义的详细信息,请参阅 Node

  • args (Tuple) – 此调用的位置参数元组

  • kwargs (Dict) – 此调用的关键字参数字典

返回

检索到的属性值

返回类型

任何

注意

此 API 的向后兼容性得到保证。

map_nodes_to_values(args, n)[source]#

递归地遍历 args,并在当前执行环境中查找每个 Node 的具体值。

参数
  • args (Argument) – 用于查找具体值的嵌套数据结构

  • n (Node) – args 所属的节点。仅用于错误报告。

返回类型

Optional[Union[tuple[‘Argument’, …], Sequence[Argument], Mapping[str, Argument], slice, range, Node, str, int, float, bool, complex, dtype, Tensor, device, memory_format, layout, OpOverload, SymInt, SymBool, SymFloat]]

注意

此 API 的向后兼容性得到保证。

output(target, args, kwargs)[source]#

执行一个 output 节点。这实际上只是检索 output 节点引用的值并返回它。

参数
  • target (Target) – 此节点的调用目标。有关语义的详细信息,请参阅 Node

  • args (Tuple) – 此调用的位置参数元组

  • kwargs (Dict) – 此调用的关键字参数字典

返回

output 节点引用的返回值

返回类型

任何

注意

此 API 的向后兼容性得到保证。

placeholder(target, args, kwargs)[source]#

执行一个 placeholder 节点。请注意,这是有状态的:Interpreter 维护一个内部迭代器,用于处理传递给 run 的参数,此方法返回该迭代器的 next() 值。

参数
  • target (Target) – 此节点的调用目标。有关语义的详细信息,请参阅 Node

  • args (Tuple) – 此调用的位置参数元组

  • kwargs (Dict) – 此调用的关键字参数字典

返回

检索到的参数值。

返回类型

任何

注意

此 API 的向后兼容性得到保证。

run(*args, initial_env=None, enable_io_processing=True)[source]#

通过解释执行 module 并返回结果。

参数
  • *args – 要运行的 Module 的参数,按位置顺序排列

  • initial_env (Optional[Dict[Node, Any]]) – 执行的可选起始环境。这是一个将 Node 映射到任意值的字典。例如,这可用于预填充某些 Nodes 的结果,以便仅在解释器内进行部分求值。

  • enable_io_processing (bool) – 如果为 True,我们将在使用图的 process_inputs 和 process_outputs 函数之前,先用它们处理输入和输出。

返回

执行 Module 返回的值

返回类型

任何

注意

此 API 的向后兼容性得到保证。

run_node(n)[source]#

运行一个 FX 节点,将未备份的 Symbol 绑定传播到新的 fake tensor

返回类型

Union[Tensor, tuple[torch.Tensor, …]]