torch.fx.experimental#
创建于:2024 年 2 月 7 日 | 最后更新于:2025 年 6 月 12 日
警告
这些 API 尚处于实验阶段,可能随时更改,恕不另行通知。
torch.fx.experimental.symbolic_shapes#
控制如何为维度执行符号分配。 |
|
对于客户端:此维度的尺寸必须在 'vr'(指定一个包含的下限和上限)之内,并且必须是非负的,且不应为 0 或 1(但请参阅下面的 NB)。 |
|
对于客户端:没有明确的约束;约束是通过跟踪中的 guard 隐式推断的。 |
|
表示和决定输入源之间的各种相等约束。 |
|
数据结构,用于指定如何在 |
|
通过 |
|
通过 |
|
对于可跟踪张量子类的给定内部张量的正确符号上下文可能与外部符号上下文不同。 |
|
用于符号维度约束系统的自定义求解器。 |
|
封装了所有可能影响 FakeTensor 分派的 shape env 设置。 |
|
此类用于多图编译上下文,在这些上下文中,我们生成多个专门的图并在运行时分派到相应的图。 |
|
检索整数的提示(基于运行时观察到的底层真实值)。 |
|
用于检查 SymInt 中底层对象是否为具体值的实用程序。 |
|
用于检查 SymBool 中底层对象是否为具体值的实用程序。 |
|
用于检查 SymInt 中底层对象是否为具体值的实用程序。 |
|
比 bool(free_symbols(val)) 更快。 |
|
比 bool(free_unbacked_symbols(val)) 更快。 |
|
尝试 guard a,如果遇到数据依赖错误,则返回 true。 |
|
尝试 guard a,如果遇到数据依赖错误,则返回 false。 |
|
以大小无关的方式对符号布尔表达式执行 guard。 |
|
用于符号表达式的 and 操作,不进行布尔转换。 |
|
类似于 ==,但当在列表/元组上运行时,它将递归地测试相等性,并使用 sym_and 将结果连接起来,而不进行 guard。 |
|
用于符号表达式的 or 操作,不进行布尔转换。 |
|
应用约束,使传入的 SymInt 必须位于 min-max(包含-包含)之间,而不引入对 SymInt 的 guard(这意味着它可用于未绑定 SymInts)。 |
|
给定两个 SymInt,约束它们必须相等。 |
|
通过将布尔表达式转换为 lt / le 不等式并将所有非常量项移到右侧来规范化布尔表达式。 |
|
如果 x 可以简化为常量且为 true,则返回 True。 |
|
如果 x 可以简化为常量且为 False,则返回 True。 |
|
用户代码友好的实用程序,用于检查值是静态还是动态。 |
|
测试两个“元”(通常是 Tensor 或 SymInt)具有相同的值,例如,在重新跟踪后。 |
|
在运行了 fake tensor propagation 并产生 example_value 结果后,遍历 example_value,查找新绑定的未绑定符号,并记录它们的路径以供以后使用。 |
|
假设我们正在重新跟踪一个先前具有 fake tensor propagation(因此有未绑定 SymInts)的预先存在的 FX 图。 |
|
当我们进行 fake tensor prop 时,我们经常会分配新的未绑定 symints。 |
|
辅助函数,用于确定节点是否正在尝试访问符号整数,例如 size、stride、offset 或 item。 |
torch.fx.experimental.proxy_tensor#
给定一个函数 f,返回一个新的函数,当使用 f 的有效参数执行该函数时,该函数将返回一个 FX GraphModule,表示执行过程中执行的操作集。 |
|
调用当前活动的代理跟踪模式,对操作这些参数的函数进行 SymInt/SymFloat/SymBool 分派跟踪。 |
|
返回当前活动的代理跟踪模式,如果当前未跟踪,则返回 None。 |
|
在此上下文管理器中,如果您正在进行 make_fx 跟踪,我们将对所有 SymNode 计算进行 thunkify,并避免将其跟踪到图中,除非实际需要。 |
|
在上下文中,禁用 thunkification。 |