評價此頁

RelaxedUnspecConstraint#

class torch.fx.experimental.symbolic_shapes.RelaxedUnspecConstraint(warn_only)[source]#

對於客戶端:沒有顯式的約束;約束是任何透過 guard 從跟蹤中隱式推斷出的結果。

對於後端:必須至少存在 TWO 個可能的值來滿足此維度的 guard。

換句話說,這個約束幫助我們區分“我們不關心這個維度是否專業化”和“這個維度必須是非專業化的”。然而,這個約束並沒有太多關於允許什麼樣的專業化的資訊;例如,如果我們基於一個偶數的 size 進行 guard,這在 unspec 約束下仍然是可以接受的。這使得 RelaxedUnspecConstraint 對於 eager 模式非常有用,因為你的後端編譯器可以在原本動態的維度上新增約束;我們不能斷言不存在 guard,因為這很脆弱,因為編譯器應該能夠新增額外的約束。如果你想斷言不存在 guard,請使用帶有無界 ValueRanges 的 StrictMinMaxConstraint。