快捷方式

torch.compiler.set_stance

torch.compiler.set_stance(stance='default', *, skip_guard_eval_unsafe=False, force_backend=None)[原始碼][原始碼]

設定編譯器的當前立場(stance)。可用作函式、上下文管理器或裝飾器。請勿在 torch.compile 區域內使用此函式,否則將引發錯誤。

@torch.compile
def foo(x):
    ...

@torch.compiler.set_stance("force_eager")
def bar():
    # will not be compiled
    foo(...)

bar()

with torch.compiler.set_stance("force_eager"):
    # will also not be compiled
    foo(...)

torch.compiler.set_stance("force_eager")
# will also not be compiled
foo(...)
torch.compiler.set_stance("default")

# will be compiled
foo(...)
引數
  • stance (str) –

    用於設定編譯器立場。有效值包括:

    • “default”:預設立場,用於正常編譯。

    • “force_eager”:忽略所有 torch.compile 指令。

    • “eager_on_recompile”:當需要重新編譯時,以 eager 模式執行程式碼。如果存在對輸入有效的快取編譯程式碼,則仍將使用該程式碼。

    • “fail_on_recompile”:重新編譯函式時引發錯誤。

  • skip_guard_eval_unsafe

    一個僅執行區分性守衛(guards)的標誌。注意 - 此標誌不安全,僅應在您的設定滿足以下條件時使用。

    torch.compile 使用守衛系統來支援重新編譯,並在執行時選擇要執行的編譯工件(compiled artifact)。這些守衛雖然高效,但會增加一些開銷,這可能會影響需要最佳化以最大程度減少守衛處理時間的場景中的效能。此 API 使您能夠停用守衛評估,前提是您已使用足夠多樣的輸入預熱了編譯模型。這一前提意味著,在預熱階段之後,將不需要進一步的重新編譯。如果此前提失敗,則存在靜默產生錯誤結果的風險(因此 API 名稱中包含“unsafe”一詞)。

  • force_backend – 如果 stance 為“default”,則此引數可用於強制 torch.compile 使用特定後端。否則,將引發錯誤。

文件

查閱 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

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

檢視資源