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]¶
在重命名私有使用 1 后端为自定义后端后,自动生成属性和方法。
在默认情况下,不会自动生成与存储相关的函数。
当您为各种 torch 操作实现内核并将它们注册到 PrivateUse1 调度键时。调用函数 torch.rename_privateuse1_backend(“foo”)来重命名您的后端名称。此时,您可以通过调用此函数轻松注册特定方法和属性。就像 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')