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 後端後,自動產生自定義後端的屬性和方法。
在預設情況下,與儲存相關的方法不會自動產生。
當您為各種 torch 運算實作核心,並將其註冊到 PrivateUse1 派送鍵時。並呼叫函數 torch.rename_privateuse1_backend(“foo”) 來重新命名您的後端名稱。此時,您可以透過呼叫此函數輕鬆註冊特定的方法和屬性。就像 torch.Tensor.foo()、torch.Tensor.is_foo、torch.Storage.foo()、torch.Storage.is_foo 一樣。
注意:我們建議您使用泛型函數(檢查裝置是否相等或 to(device=))。我們提供這些方法僅是為了方便起見,它們將被「猴子補丁 (monkey patched)」到物件上,因此不會有正確的型別。對於 Storage 方法 generate,如果您需要支援稀疏資料儲存,您需要自行擴充實作。
- 參數
for_tensor (bool) – 是否為 torch.Tensor 類別註冊相關方法。
for_module (bool) – 是否為 torch.nn.Module 類別註冊相關方法。
for_storage (bool) – 是否為 torch.Storage 類別註冊相關方法。
unsupported_dtype (List[torch.dtype]) – 僅當需要生成 storage 方法時生效,表示 storage 不支援 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')