评价此页

torch.fx.experimental#

创建于:2024 年 2 月 7 日 | 最后更新于:2025 年 6 月 12 日

警告

这些 API 尚处于实验阶段,可能随时更改,恕不另行通知。

torch.fx.experimental.symbolic_shapes#

ShapeEnv

DimDynamic

控制如何为维度执行符号分配。

StrictMinMaxConstraint

对于客户端:此维度的尺寸必须在 'vr'(指定一个包含的下限和上限)之内,并且必须是非负的,且不应为 0 或 1(但请参阅下面的 NB)。

RelaxedUnspecConstraint

对于客户端:没有明确的约束;约束是通过跟踪中的 guard 隐式推断的。

EqualityConstraint

表示和决定输入源之间的各种相等约束。

SymbolicContext

数据结构,用于指定如何在 create_symbolic_sizes_strides_storage_offset 中创建符号;例如,它们应该是静态的还是动态的。

StatelessSymbolicContext

通过 DimDynamicDimConstraint 给出的 symbolic_context 确定,在 create_symbolic_sizes_strides_storage_offset 中创建符号。

StatefulSymbolicContext

通过 Source:Symbol 的缓存给出的 symbolic_context 确定,在 create_symbolic_sizes_strides_storage_offset 中创建符号。

SubclassSymbolicContext

对于可跟踪张量子类的给定内部张量的正确符号上下文可能与外部符号上下文不同。

DimConstraints

用于符号维度约束系统的自定义求解器。

ShapeEnvSettings

封装了所有可能影响 FakeTensor 分派的 shape env 设置。

ConvertIntKey

CallMethodKey

PropagateUnbackedSymInts

DivideByKey

InnerTensorKey

专业化

此类用于多图编译上下文,在这些上下文中,我们生成多个专门的图并在运行时分派到相应的图。

hint_int

检索整数的提示(基于运行时观察到的底层真实值)。

is_concrete_int

用于检查 SymInt 中底层对象是否为具体值的实用程序。

is_concrete_bool

用于检查 SymBool 中底层对象是否为具体值的实用程序。

is_concrete_float

用于检查 SymInt 中底层对象是否为具体值的实用程序。

has_free_symbols

比 bool(free_symbols(val)) 更快。

has_free_unbacked_symbols

比 bool(free_unbacked_symbols(val)) 更快。

guard_or_true

尝试 guard a,如果遇到数据依赖错误,则返回 true。

guard_or_false

尝试 guard a,如果遇到数据依赖错误,则返回 false。

guard_size_oblivious

以大小无关的方式对符号布尔表达式执行 guard。

sym_and

用于符号表达式的 and 操作,不进行布尔转换。

sym_eq

类似于 ==,但当在列表/元组上运行时,它将递归地测试相等性,并使用 sym_and 将结果连接起来,而不进行 guard。

sym_or

用于符号表达式的 or 操作,不进行布尔转换。

constrain_range

应用约束,使传入的 SymInt 必须位于 min-max(包含-包含)之间,而不引入对 SymInt 的 guard(这意味着它可用于未绑定 SymInts)。

constrain_unify

给定两个 SymInt,约束它们必须相等。

canonicalize_bool_expr

通过将布尔表达式转换为 lt / le 不等式并将所有非常量项移到右侧来规范化布尔表达式。

statically_known_true

如果 x 可以简化为常量且为 true,则返回 True。

statically_known_false

如果 x 可以简化为常量且为 False,则返回 True。

has_static_value

用户代码友好的实用程序,用于检查值是静态还是动态。

lru_cache

check_consistent

测试两个“元”(通常是 Tensor 或 SymInt)具有相同的值,例如,在重新跟踪后。

compute_unbacked_bindings

在运行了 fake tensor propagation 并产生 example_value 结果后,遍历 example_value,查找新绑定的未绑定符号,并记录它们的路径以供以后使用。

rebind_unbacked

假设我们正在重新跟踪一个先前具有 fake tensor propagation(因此有未绑定 SymInts)的预先存在的 FX 图。

resolve_unbacked_bindings

当我们进行 fake tensor prop 时,我们经常会分配新的未绑定 symints。

is_accessor_node

辅助函数,用于确定节点是否正在尝试访问符号整数,例如 size、stride、offset 或 item。

torch.fx.experimental.proxy_tensor#

make_fx

给定一个函数 f,返回一个新的函数,当使用 f 的有效参数执行该函数时,该函数将返回一个 FX GraphModule,表示执行过程中执行的操作集。

handle_sym_dispatch

调用当前活动的代理跟踪模式,对操作这些参数的函数进行 SymInt/SymFloat/SymBool 分派跟踪。

get_proxy_mode

返回当前活动的代理跟踪模式,如果当前未跟踪,则返回 None。

maybe_enable_thunkify

在此上下文管理器中,如果您正在进行 make_fx 跟踪,我们将对所有 SymNode 计算进行 thunkify,并避免将其跟踪到图中,除非实际需要。

maybe_disable_thunkify

在上下文中,禁用 thunkification。