• 文档 >
  • torch.compiler >
  • 火炬编译器 API 参考 >
  • torch.compiler.set_stance
快捷键

torch.compiler.set_stance

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

设置编译器的当前立场。可以用作函数、上下文管理器或装饰器。不要在 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”:当需要重新编译时,积极运行代码。如果存在有效的缓存编译代码,它仍然会被使用。

    • 在重新编译函数时引发错误。

  • 跳过_guard_eval_unsafe –

    仅运行区分性守卫的标志。注意 - 此标志不安全,仅在您的设置满足以下条件时才应使用。

    torch.compile 使用守卫系统来支持重新编译并在运行时选择要运行的编译工件。虽然这些守卫效率高,但会增加一些开销,这可能会影响需要优化最小守卫处理时间的场景中的性能。此 API 允许您禁用守卫评估,前提是您已使用足够多样化的输入预热了编译模型。这个假设意味着,在预热阶段之后,将不再需要进一步的重新编译。如果这个假设失败,存在静默产生错误结果的风险(因此 API 名称中使用了“不安全”一词)。

  • force_backend – 如果立场是“默认”,则可以使用此参数强制 torch.compile 使用特定后端。否则,将引发错误。


© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源