torch.utils.为privateuse1后端生成方法¶
- torch.utils.generate_methods_for_privateuse1_backend(for_tensor=True, for_module=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=))。 我们仅出于方便提供这些方法,并且它们将被“猴子补丁”到对象上,因此不会被正确地类型化。对于存储方法生成,如果您需要支持稀疏数据存储, 您需要自行扩展实现。
- Parameters
for_tensor (布尔值) – 是否为 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() # 然后自动生成与后端相关的属性和方法。 >>> a = torch.tensor(2).foo() >>> a.is_foo >>> hasattr(torch.nn.Module, 'foo')