RelaxedUnspecConstraint¶
- class torch.fx.experimental.symbolic_shapes.RelaxedUnspecConstraint(warn_only)[source][source]¶
對於用戶端:沒有明確的約束;約束是透過追蹤從保護中隱含推斷的任何內容。
對於後端:此維度的大小必須存在至少兩個可能的值,以滿足此維度的保護。
換句話說,這個約束條件幫助我們區分「我們不在意這個維度是否特化」與「這個維度必須是非特化的」這兩種情況。然而,這個約束條件並未明確說明允許何種特化;例如,如果我們以尺寸為偶數作為條件判斷,這在 unspec 約束下仍然是可以接受的。這使得 RelaxedUnspecConstraint 適用於 eager 模式,在這種模式下,您的後端編譯器可能會為原本是動態的維度添加約束條件;我們不能斷言完全沒有條件判斷,因為編譯器應該能夠添加額外的約束條件,這樣做是不可靠的。如果您想要斷言沒有任何條件判斷,請使用具有無界 ValueRanges 的 StrictMinMaxConstraint。