jax.debug.callback

内容

jax.debug.callback#

jax.debug.callback(callback, *args, ordered=False, **kwargs)[source]#

调用可分阶段的 Python 回调。

有关更多说明,请参见 外部回调

jax.debug.callback 使您能够传入一个 Python 函数,该函数可以在分阶段的 JAX 程序内部调用。一个 jax.debug.callback 遵循现有的 JAX 变换 *纯* 操作语义,因此它们不知道副作用。这意味着在存在高阶原语和变换的情况下,该效果可能会被丢弃、重复或可能被重新排序。

我们想要这种行为,因为我们希望 jax.debug.callback 是“无害的”,即我们希望这些原语尽可能少地改变 JAX 计算,同时尽可能多地揭示有关它们的的信息,例如计算的哪些部分被复制或丢弃。

参数:
  • callback (Callable[..., None]) – 返回 None 的 Python 可调用对象。

  • *args (Any) – 回调的位置参数。

  • ordered (bool) – 用于指示分阶段计算是否强制此回调相对于其他有序回调的排序的关键字参数。

  • **kwargs (Any) – 回调的关键字参数。

返回值:

返回类型:

另请参阅