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)[source][source]¶
在重新命名 privateuse1 後端後,自動為自定義後端生成屬性和方法。
在預設情況下,不會自動生成儲存相關的方法。
當您為各種 torch 操作實現核心並將它們註冊到 PrivateUse1 分發鍵時,並呼叫 torch.rename_privateuse1_backend(“foo”) 函式來重新命名您的後端名稱。此時,您可以透過呼叫此函式輕鬆註冊特定的方法和屬性。例如 torch.Tensor.foo()、torch.Tensor.is_foo、torch.Storage.foo()、torch.Storage.is_foo。
注意:我們建議您使用泛型函式(檢查裝置是否相等或使用 to(device=))。我們提供這些方法僅為方便起見,它們將透過“猴子補丁”方式新增到物件上,因此不會具有適當的型別。對於儲存方法生成,如果您需要支援稀疏資料儲存,則需要自己擴充套件實現。
- 引數
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')