RelaxedUnspecConstraint¶
- class torch.fx.experimental.symbolic_shapes.RelaxedUnspecConstraint(warn_only)[源代码]¶
对于客户端:没有明确的约束;约束是由跟踪中的守卫隐含推断的。
对于后端:在此维度上必须存在至少两个可能的值,这些值满足此维度的保护条件。
换句话说,这个约束帮助我们区分“我们不在乎这个维度是否专门化”与“这个维度必须是非专门化的”。然而,这个约束并没有说明允许什么样的专门化;例如,如果我们对一个尺寸是否为偶数进行保护,这在非专门化约束下仍然是可接受的。这使得RelaxedUnspecConstraint在急切模式下非常有用,因为在这种模式下,您的后端编译器可能会对原本动态的维度添加约束;我们不能断言没有保护,因为这是脆弱的,因为编译器应该能够添加额外的约束。如果您想断言没有保护,请使用StrictMinMaxConstraint并结合无界的ValueRanges。