torch.fx.experimental¶
警告
这些 API 处于实验阶段,可能会在未经通知的情况下更改。
torch.fx.experimental.symbolic_shapes¶
torch.fx.experimental.symbolic_shapes
提供了与我们的符号形状推理系统交互的接口,该系统在 torch.compile 中被广泛使用。虽然这通常不被认为是公开 API,但在编写 PyTorch 中的框架代码以及 PyTorch 的扩展(例如,在自定义运算符实现中)时,您可能需要使用这些 API 来适当设置动态形状支持。
控制如何为维度执行符号分配。 |
|
对于客户端:此维度的尺寸必须在 'vr' 内(它指定了包含-包含的下限和上限)并且必须是非负数,不能为 0 或 1(但请参见下面的说明)。 |
|
对于客户端:没有显式约束;约束是通过跟踪从保护中隐式推断的任何内容。 |
|
表示和决定输入源之间各种类型的相等约束。 |
|
数据结构,指定我们应该如何在 |
|
通过 |
|
通过 Source:Symbol 缓存给出的符号上下文确定,在 |
|
可跟踪张量子类的给定内部张量的正确符号上下文可能与外部符号上下文不同。 |
|
针对符号维度约束系统定制的求解器。 |
|
封装了可能影响 FakeTensor 分派的所有形状环境设置。 |
|
检索整数的提示(基于在运行时观察到的底层真实值)。 |
|
实用程序,用于检查 SymInt 中的底层对象是否是具体值。 |
|
实用程序,用于检查 SymBool 中的底层对象是否是具体值。 |
|
bool(free_symbols(val)) 的更快版本 |
|
仅当我们能够确定 a 为 True 时返回 True,在此过程中可能会引入保护。 |
|
仅当我们能够确定 a 为 False 时返回 True,在此过程中可能会引入保护。 |
|
以大小无关的方式对符号布尔表达式执行保护。 |
|
计算多个参数的逻辑 OR,如果另一个参数肯定为 True,则避免对未支持的 SymInt 进行保护。 |
|
计算多个参数的逻辑 FALSE,如果另一个参数肯定为 False,则避免对未支持的 SymInt 进行保护。 |
|
类似于 ==,但当对列表/元组运行时,它将递归地测试相等性并使用 sym_and 将结果连接在一起,而不会进行保护。 |
|
应用一个约束,即传入的 SymInt 必须位于包含-包含的 min-max 之间,而不会对 SymInt 引入保护(意味着它可以用于未支持的 SymInt)。 |
|
给定两个 SymInt,将它们约束在一起,使它们必须相等。 |
|
通过将布尔表达式转换为 lt/le 不等式并将所有非常数项移至 rhs 来规范化布尔表达式。 |
|
如果 x 可以简化为常量并且为真,则返回 True。 |
|
测试两个“元”值(通常是 Tensor 或 SymInt)是否具有相同的值,例如,在重新跟踪之后。 |
|
在运行假张量传播并生成 example_value 结果后,遍历 example_value 查找新绑定的未支持符号并记录其路径以备后用。 |
|
假设我们正在重新跟踪一个之前具有假张量传播(因此有未支持的 SymInt)的现有 FX 图。 |
|