torch.fx.experimental#
創建於:2024 年 2 月 7 日 | 最後更新於:2025 年 6 月 12 日
警告
這些 API 尚處於實驗階段,可能隨時更改,恕不另行通知。
torch.fx.experimental.symbolic_shapes#
控制如何為維度執行符號分配。 |
|
對於客戶端:此維度的尺寸必須在 'vr'(指定一個包含的下限和上限)之內,並且必須是非負的,且不應為 0 或 1(但請參閱下面的 NB)。 |
|
對於客戶端:沒有明確的約束;約束是透過跟蹤中的 guard 隱式推斷的。 |
|
表示和決定輸入源之間的各種相等約束。 |
|
資料結構,用於指定如何在 |
|
透過 |
|
透過 |
|
對於可跟蹤張量子類的給定內部張量的正確符號上下文可能與外部符號上下文不同。 |
|
用於符號維度約束系統的自定義求解器。 |
|
封裝了所有可能影響 FakeTensor 分派的 shape env 設定。 |
|
此類用於多圖編譯上下文,在這些上下文中,我們生成多個專門的圖並在執行時分派到相應的圖。 |
|
檢索整數的提示(基於執行時觀察到的底層真實值)。 |
|
用於檢查 SymInt 中底層物件是否為具體值的實用程式。 |
|
用於檢查 SymBool 中底層物件是否為具體值的實用程式。 |
|
用於檢查 SymInt 中底層物件是否為具體值的實用程式。 |
|
比 bool(free_symbols(val)) 更快。 |
|
比 bool(free_unbacked_symbols(val)) 更快。 |
|
嘗試 guard a,如果遇到資料依賴錯誤,則返回 true。 |
|
嘗試 guard a,如果遇到資料依賴錯誤,則返回 false。 |
|
以大小無關的方式對符號布林表示式執行 guard。 |
|
用於符號表達式的 and 操作,不進行布林轉換。 |
|
類似於 ==,但當在列表/元組上執行時,它將遞迴地測試相等性,並使用 sym_and 將結果連線起來,而不進行 guard。 |
|
用於符號表達式的 or 操作,不進行布林轉換。 |
|
應用約束,使傳入的 SymInt 必須位於 min-max(包含-包含)之間,而不引入對 SymInt 的 guard(這意味著它可用於未繫結 SymInts)。 |
|
給定兩個 SymInt,約束它們必須相等。 |
|
透過將布林表示式轉換為 lt / le 不等式並將所有非常量項移到右側來規範化布林表示式。 |
|
如果 x 可以簡化為常量且為 true,則返回 True。 |
|
如果 x 可以簡化為常量且為 False,則返回 True。 |
|
使用者程式碼友好的實用程式,用於檢查值是靜態還是動態。 |
|
測試兩個“元”(通常是 Tensor 或 SymInt)具有相同的值,例如,在重新跟蹤後。 |
|
在運行了 fake tensor propagation 併產生 example_value 結果後,遍歷 example_value,查詢新繫結的未繫結符號,並記錄它們的路徑以供以後使用。 |
|
假設我們正在重新跟蹤一個先前具有 fake tensor propagation(因此有未繫結 SymInts)的預先存在的 FX 圖。 |
|
當我們進行 fake tensor prop 時,我們經常會分配新的未繫結 symints。 |
|
輔助函式,用於確定節點是否正在嘗試訪問符號整數,例如 size、stride、offset 或 item。 |
torch.fx.experimental.proxy_tensor#
給定一個函式 f,返回一個新的函式,當使用 f 的有效引數執行該函式時,該函式將返回一個 FX GraphModule,表示執行過程中執行的操作集。 |
|
呼叫當前活動的代理跟蹤模式,對操作這些引數的函式進行 SymInt/SymFloat/SymBool 分派跟蹤。 |
|
返回當前活動的代理跟蹤模式,如果當前未跟蹤,則返回 None。 |
|
在此上下文管理器中,如果您正在進行 make_fx 跟蹤,我們將對所有 SymNode 計算進行 thunkify,並避免將其跟蹤到圖中,除非實際需要。 |
|
在上下文中,停用 thunkification。 |