快捷方式

torch.fx.experimental.symbolic_shapes.constrain_range

torch.fx.experimental.symbolic_shapes.constrain_range(a, *, min, max=None)[原始碼][原始碼]

應用一個約束,即傳入的 SymInt 必須介於 min-max 之間(包含 min 和 max),而 不會 在 SymInt 上引入 guard (這意味著它可以用於 unbacked SymInt)。如果 min/max 為 None,我們假定該維度在該方向上是無界的。重複應用 constrain_range 會對範圍進行交集運算。這是一個相當低階的 API,沒有很多安全保障 (TODO: 提供更高階的 API)。

目前,我們在以下情況中使用此 API:當我們分配一個 unbacked SymInt 時,它表示一個依賴於資料的整數量,我們通常不知道它可以取什麼值。這意味著對其進行的任何 guard 都將立即失敗。然而,在許多情況下,我們知道一些關於 unbacked SymInt 的資訊:例如,我們知道 nonzero(x).size(0) 必須 >= 0。我們使用 constrain_range 來縮小可能的範圍,宣告負數符號是不可能的。這使得我們可以確定地回答 'nnz >= 0' 等查詢為 True,即使我們不知道 'nnz' 的實際(提示的)值是什麼。實際上,我們甚至使用 constrain_range 不健全地解除常見的 guard:對於由 nonzero 產生的 unbacked SymInt,我們還會假定它不等於 0/1 (儘管這些在執行時是完全可能的值),因為我們通常期望對於 N=2 有效的圖對於 N=1 也有效。

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源