評價此頁

torch.fx.experimental#

創建於:2024 年 2 月 7 日 | 最後更新於:2025 年 6 月 12 日

警告

這些 API 尚處於實驗階段,可能隨時更改,恕不另行通知。

torch.fx.experimental.symbolic_shapes#

ShapeEnv

DimDynamic

控制如何為維度執行符號分配。

StrictMinMaxConstraint

對於客戶端:此維度的尺寸必須在 'vr'(指定一個包含的下限和上限)之內,並且必須是非負的,且不應為 0 或 1(但請參閱下面的 NB)。

RelaxedUnspecConstraint

對於客戶端:沒有明確的約束;約束是透過跟蹤中的 guard 隱式推斷的。

EqualityConstraint

表示和決定輸入源之間的各種相等約束。

SymbolicContext

資料結構,用於指定如何在 create_symbolic_sizes_strides_storage_offset 中建立符號;例如,它們應該是靜態的還是動態的。

StatelessSymbolicContext

透過 DimDynamicDimConstraint 給出的 symbolic_context 確定,在 create_symbolic_sizes_strides_storage_offset 中建立符號。

StatefulSymbolicContext

透過 Source:Symbol 的快取給出的 symbolic_context 確定,在 create_symbolic_sizes_strides_storage_offset 中建立符號。

SubclassSymbolicContext

對於可跟蹤張量子類的給定內部張量的正確符號上下文可能與外部符號上下文不同。

DimConstraints

用於符號維度約束系統的自定義求解器。

ShapeEnvSettings

封裝了所有可能影響 FakeTensor 分派的 shape env 設定。

ConvertIntKey

CallMethodKey

PropagateUnbackedSymInts

DivideByKey

InnerTensorKey

專業化

此類用於多圖編譯上下文,在這些上下文中,我們生成多個專門的圖並在執行時分派到相應的圖。

hint_int

檢索整數的提示(基於執行時觀察到的底層真實值)。

is_concrete_int

用於檢查 SymInt 中底層物件是否為具體值的實用程式。

is_concrete_bool

用於檢查 SymBool 中底層物件是否為具體值的實用程式。

is_concrete_float

用於檢查 SymInt 中底層物件是否為具體值的實用程式。

has_free_symbols

比 bool(free_symbols(val)) 更快。

has_free_unbacked_symbols

比 bool(free_unbacked_symbols(val)) 更快。

guard_or_true

嘗試 guard a,如果遇到資料依賴錯誤,則返回 true。

guard_or_false

嘗試 guard a,如果遇到資料依賴錯誤,則返回 false。

guard_size_oblivious

以大小無關的方式對符號布林表示式執行 guard。

sym_and

用於符號表達式的 and 操作,不進行布林轉換。

sym_eq

類似於 ==,但當在列表/元組上執行時,它將遞迴地測試相等性,並使用 sym_and 將結果連線起來,而不進行 guard。

sym_or

用於符號表達式的 or 操作,不進行布林轉換。

constrain_range

應用約束,使傳入的 SymInt 必須位於 min-max(包含-包含)之間,而不引入對 SymInt 的 guard(這意味著它可用於未繫結 SymInts)。

constrain_unify

給定兩個 SymInt,約束它們必須相等。

canonicalize_bool_expr

透過將布林表示式轉換為 lt / le 不等式並將所有非常量項移到右側來規範化布林表示式。

statically_known_true

如果 x 可以簡化為常量且為 true,則返回 True。

statically_known_false

如果 x 可以簡化為常量且為 False,則返回 True。

has_static_value

使用者程式碼友好的實用程式,用於檢查值是靜態還是動態。

lru_cache

check_consistent

測試兩個“元”(通常是 Tensor 或 SymInt)具有相同的值,例如,在重新跟蹤後。

compute_unbacked_bindings

在運行了 fake tensor propagation 併產生 example_value 結果後,遍歷 example_value,查詢新繫結的未繫結符號,並記錄它們的路徑以供以後使用。

rebind_unbacked

假設我們正在重新跟蹤一個先前具有 fake tensor propagation(因此有未繫結 SymInts)的預先存在的 FX 圖。

resolve_unbacked_bindings

當我們進行 fake tensor prop 時,我們經常會分配新的未繫結 symints。

is_accessor_node

輔助函式,用於確定節點是否正在嘗試訪問符號整數,例如 size、stride、offset 或 item。

torch.fx.experimental.proxy_tensor#

make_fx

給定一個函式 f,返回一個新的函式,當使用 f 的有效引數執行該函式時,該函式將返回一個 FX GraphModule,表示執行過程中執行的操作集。

handle_sym_dispatch

呼叫當前活動的代理跟蹤模式,對操作這些引數的函式進行 SymInt/SymFloat/SymBool 分派跟蹤。

get_proxy_mode

返回當前活動的代理跟蹤模式,如果當前未跟蹤,則返回 None。

maybe_enable_thunkify

在此上下文管理器中,如果您正在進行 make_fx 跟蹤,我們將對所有 SymNode 計算進行 thunkify,並避免將其跟蹤到圖中,除非實際需要。

maybe_disable_thunkify

在上下文中,停用 thunkification。