torch.utils.generate_methods_for_privateuse1_backend#
- torch.utils.generate_methods_for_privateuse1_backend(for_tensor=True, for_module=True, for_packed_sequence=True, for_storage=False, unsupported_dtype=None)[原始碼]#
在重新命名 privateuse1 backend 後,自動為自定義 backend 生成屬性和方法。
在預設情況下,不會自動生成與儲存相關的方法。
當您為各種 torch 操作實現核心,並將它們註冊到 PrivateUse1 dispatch key 時。然後呼叫函式 torch.rename_privateuse1_backend(“foo”) 來重新命名您的 backend 名稱。此時,您可以輕鬆地透過呼叫此函式來註冊特定的方法和屬性。例如 torch.Tensor.foo()、torch.Tensor.is_foo、torch.Storage.foo()、torch.Storage.is_foo。
注意:我們建議您使用通用的函式(檢查裝置是否相等或 to(device=))。我們僅為方便起見提供這些方法,並且它們將“猴子補丁”到物件上,因此無法正確輸入。對於 Storage 方法的生成,如果您需要支援稀疏資料儲存,您需要自己擴充套件實現。
- 引數
for_tensor (bool) – 是否為 torch.Tensor 類註冊相關方法。
for_module (bool) – 是否為 torch.nn.Module 類註冊相關方法。
for_storage (bool) – 是否為 torch.Storage 類註冊相關方法。
unsupported_dtype (List[torch.dtype]) – 僅在需要生成儲存方法時生效,表示該儲存不支援 torch.dtype 型別。
示例
>>> torch.utils.rename_privateuse1_backend("foo") >>> torch.utils.generate_methods_for_privateuse1_backend() # Then automatically generate backend-related attributes and methods. >>> a = torch.tensor(2).foo() >>> a.is_foo >>> hasattr(torch.nn.Module, 'foo')