torch.fx.experimental¶
警告
这些 API 处于实验阶段,可能会在未经通知的情况下更改。
torch.fx.experimental.symbolic_shapes¶
torch.fx.experimental.symbolic_shapes
提供了与我们的符号形状推理系统交互的接口,该系统在 torch.compile 中被大量使用。虽然这通常不被认为是公共 API,但在编写 PyTorch 中的框架代码以及 PyTorch 的扩展(例如,在自定义运算符实现中)时,您可能需要使用这些 API 来适当地设置动态形状支持。
控制如何为维度执行符号分配。 |
|
对于客户端:此维度的尺寸必须在 'vr'(指定上下限,包含-包含)内,并且必须是非负数,并且不应为 0 或 1(但请参见下面的 NB)。 |
|
对于客户端:没有显式约束;约束是通过跟踪从守卫隐式推断出的任何内容。 |
|
表示和决定输入源之间各种类型的相等约束。 |
|
数据结构,指定我们如何在 |
|
通过 |
|
通过 Source:Symbol 缓存给出的符号上下文确定,在 |
|
对于可追踪张量子类的给定内部张量,正确的符号上下文可能与外部符号上下文不同。 |
|
用于解决符号维度约束系统的自定义求解器。 |
|
检索整数的提示(基于运行时观察到的底层实数值)。 |
|
用于检查 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。 |