RelaxedUnspecConstraint¶
- class torch.fx.experimental.symbolic_shapes.RelaxedUnspecConstraint(warn_only)[source][source]¶
對於客戶端:沒有顯式約束;約束是透過跟蹤的 guards 隱式推斷出的。
對於後端:該維度的尺寸至少存在兩個可能的值,且這些值滿足該維度的 guards。
換句話說,這個約束幫助我們區分“我們不關心這個維度是否會特化”和“這個維度必須是未特化的”。然而,這個約束對於允許什麼樣的特化沒有太多說明;例如,如果我們對尺寸為偶數進行 guarding,這在 unspec 約束下仍然是可以接受的。這使得 RelaxedUnspecConstraint 對於 eager 模式很有用,在這種模式下,您的後端編譯器可能會對原本動態的維度新增約束;我們不能斷言沒有 guards,因為這會很脆弱,因為編譯器應該能夠新增額外的約束。如果您想斷言沒有 guards,請使用帶有無界 ValueRanges 的 StrictMinMaxConstraint。