当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch Future.add_done_callback用法及代码示例


本文简要介绍python语言中 torch.futures.Future.add_done_callback 的用法。

用法:

add_done_callback(callback)

参数

  • callback(Future) -一个接受一个参数的Callable

  • is the reference to this Future.(哪一个) -

将给定的回调函数附加到此 Future ,该函数将在 Future 完成时运行。可以将多个回调添加到同一个 Future 中,但无法保证它们的执行顺序。回调必须采用一个参数,即对此 Future 的引用。回调函数可以使用value()方法来获取值。请注意,如果此 Future 已完成,则给定的回调将内联运行。

我们建议您使用 then() 方法,因为它提供了一种在回调完成后进行同步的方法。如果您的回调不返回任何内容,add_done_callback 可能会更便宜。但 then()add_done_callback 在底层都使用相同的回调注册 API。

对于 GPU 张量,此方法的行为方式与 then() 相同。

注意

请注意,如果回调函数通过异常完成并调用 fut.wait() 或通过回调中的其他代码抛出回调函数,则必须小心处理错误处理。例如,如果此回调稍后完成了其他期货,则这些期货不会标记为已完成并出现错误,并且用户负责独立处理这些期货的完成/等待。

例子:

>>> def callback(fut):
...     print(f"This will run after the future has finished.")
...     print(fut.wait())
>>> fut = torch.futures.Future()
>>> fut.add_done_callback(callback)
>>> fut.set_result(5)
This will run after the future has finished.
5

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.futures.Future.add_done_callback。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。