评价此页

torch.fx.experimental#

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

警告

这些 API 仍处于实验阶段,如有更改恕不另行通知。

torch.fx.experimental.symbolic_shapes#

ShapeEnv

DimDynamic

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

StrictMinMaxConstraint

对于客户端:此维度的尺寸必须在“vr”(指定下限和上限,包含-包含)之内,并且必须是非负数,不应为 0 或 1(但请参阅下面的注意事项)。

RelaxedUnspecConstraint

对于客户端:没有明确的约束;约束是跟踪中通过守卫隐式推断的任何内容。

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 调度的形状环境设置。

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

尝试守护 a,如果遇到数据相关错误则返回 true。

guard_or_false

尝试守护 a,如果遇到数据相关错误则返回 false。

guard_size_oblivious

以与尺寸无关的方式对符号布尔表达式执行守护。

sym_and

and,但用于符号表达式,不进行布尔类型转换。

sym_eq

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

sym_or

or,但用于符号表达式,不进行布尔类型转换。

constrain_range

施加一个约束,使传入的 SymInt 必须位于 min-max 之间(包含-包含),不引入 SymInt 上的守护(这意味着它可用于未支持的 SymInt)。

constrain_unify

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

canonicalize_bool_expr

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

statically_known_true

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

statically_known_false

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

has_static_value

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

lru_cache

check_consistent

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

compute_unbacked_bindings

在运行假张量传播并生成 example_value 结果之后,遍历 example_value 查找新绑定的无支持符号并记录它们的路径以供以后使用。

rebind_unbacked

假设我们正在重新跟踪之前具有假张量传播(因此具有无支持 SymInts)的现有 FX 图。

resolve_unbacked_bindings

当我们进行假张量传播时,我们经常会分配新的无支持 SymInts。

is_accessor_node

确定节点是否正在尝试访问符号整数(例如大小、步幅、偏移量或项目)的辅助函数。

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。