torch.fx.experimental¶
警告
这些API是实验性的,可能会在没有通知的情况下发生变化。
torch.fx.experimental.symbolic_shapes¶
torch.fx.experimental.symbolic_shapes 提供了与我们的符号形状推理系统交互的接口,该系统在 torch.compile 中被大量使用。虽然这通常不被认为是公共 API,但在编写 PyTorch 框架代码以及扩展 PyTorch(例如,在自定义操作符实现中)时,您可能需要使用这些 API 来适当地设置动态形状支持。
ShapeEnv |
|
DimDynamic |
控制如何为一个维度执行符号分配。 |
StrictMinMaxConstraint |
对于客户端:在此维度上的大小必须在 'vr' 范围内(指定了一个上下限,包含-包含),并且必须是非负的,不应为 0 或 1(但请参见下面的注释)。 |
RelaxedUnspecConstraint |
对于客户端:没有明确的约束;约束是由跟踪中的守卫隐含推断的。 |
EqualityConstraint |
表示并决定输入源之间的各种等式约束。 |
SymbolicContext |
指定如何在 |
StatelessSymbolicContext |
在 |
StatefulSymbolicContext |
在 |
SubclassSymbolicContext |
可追踪张量子类的给定内部张量的正确符号上下文可能与外部符号上下文不同。 |
DimConstraints |
用于符号维度上约束系统的自定义求解器。 |
hint_int |
检索一个整数的提示(基于运行时观察到的底层实数值)。 |
is_concrete_int |
用于检查 SymInt 中的底层对象是否为具体值的工具。 |
is_concrete_bool |
用于检查SymBool中的底层对象是否为具体值的工具。 |
has_free_symbols |
更快的 bool(free_symbols(val)) 版本 |
definitely_true |
仅当我们可以确定a为True时返回True,在此过程中可能会引入一个保护。 |
definitely_false |
仅当我们能够确定a为False时返回True,在此过程中可能会引入一个保护。 |
guard_size_oblivious |
以大小无关的方式对符号布尔表达式执行保护。 |
parallel_or |
评估多个参数的逻辑或,如果另一个参数确定为真,则避免在无支持的 SymInts 上进行保护。 |
parallel_and |
评估多个参数的逻辑假,如果另一个参数确定为假,则避免在没有支持的 SymInts 上进行保护。 |
sym_eq |
类似于==,但在列表/元组上运行时,它会递归测试相等性,并使用sym_and将结果连接在一起,而不进行保护。 |
constrain_range |
应用一个约束,使得传入的 SymInt 必须在最小值和最大值之间(包括最小值和最大值),而不引入对 SymInt 的保护(这意味着它可以在未支持的 SymInt 上使用)。 |
constrain_unify |
给定两个SymInts,限制它们必须相等。 |
canonicalize_bool_expr |
通过将其转换为 lt / le 不等式并将所有非常数项移到右侧来规范化布尔表达式。 |
statically_known_true |
如果 x 可以简化为一个常量并且为真,则返回 True。 |