當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。