torch.Storage¶
torch.Storage 是对应默认数据类型(torch.get_default_dtype())的存储类的别名。例如,如果默认数据类型是 torch.float,则 torch.Storage 解析为
torch.FloatStorage。
第 torch.<type>Storage 和 torch.cuda.<type>Storage 类,
如 torch.FloatStorage, torch.IntStorage 等,实际上从未被实例化。调用它们的构造函数会创建一个带有适当 torch.dtype 和 torch.device 的 torch.TypedStorage。 torch.<type>Storage 类具有与 torch.TypedStorage 相同的所有类方法。
一个 torch.TypedStorage 是一个连续的、一维的特定 torch.dtype 元素数组。它可以被赋予任何 torch.dtype,内部数据将被适当地解释。torch.TypedStorage 包含一个 torch.UntypedStorage,它以未分类的字节数组形式保存数据。
每个步幅为 torch.Tensor 的元素包含一个 torch.TypedStorage,
它存储了所有 torch.Tensor 视图的数据。
警告
除了 torch.UntypedStorage 之外的所有存储类将在未来被移除,并且在所有情况下将使用 torch.UntypedStorage。
- class torch.TypedStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- cuda(device=None, non_blocking=False, **kwargs)[source]¶
返回此对象在CUDA内存中的副本。
如果该对象已经在CUDA内存中并且位于正确的设备上,那么不会执行复制操作,并返回原始对象。
- property device¶
- classmethod from_file(filename, shared=False, size=0) Storage[source]¶
如果 shared 是 True,则所有进程之间共享内存。 所有更改都会写入文件。如果 shared 是 False,则存储中的更改不会影响文件。
size 是存储中的元素数量。如果 shared 是 False, 则文件必须至少包含 size * sizeof(Type) 字节 (Type 是存储类型)。如果 shared 是 True,文件将被 创建(如需要)。
- hpu(device=None, non_blocking=False, **kwargs)[source]¶
返回此对象在HPU内存中的副本。
如果该对象已经在HPU内存中并且位于正确的设备上,那么不会执行复制操作,并返回原始对象。
- property is_cuda¶
- property is_hpu¶
- is_pinned(device='cuda')[source]¶
确定 CPU TypedStorage 是否已在设备上固定。
- Parameters
device (str 或 torch.device) – 要固定内存的设备。默认值:
'cuda'- Returns
一个布尔变量。
- is_sparse = False¶
- pin_memory(device='cuda')[source]¶
如果 CPU TypedStorage 尚未固定,则将其复制到固定内存中。
- Parameters
device (str 或 torch.device) – 要固定内存的设备。默认值:
'cuda'.- Returns
一个固定在 CPU 上的存储。
将存储移动到共享内存。
对于已经位于共享内存中的存储以及不需要跨进程共享的 CUDA 存储,此操作不会产生任何效果。共享内存中的存储无法调整大小。
返回值: self
- type(dtype=None, non_blocking=False)[source]¶
如果未提供 dtype,则返回类型,否则将此对象转换为指定的类型。
如果已经是正确的类型,则不会执行复制操作,并返回原始对象。
- untyped()[source]¶
返回内部的
torch.UntypedStorage
- class torch.UntypedStorage(*args, **kwargs)[source]¶
- bfloat16()¶
将此存储转换为 bfloat16 类型
- bool()¶
将此存储转换为布尔类型
- byte()¶
将此存储转换为字节类型
- byteswap(dtype)¶
在底层数据中交换字节
- char()¶
将此存储转换为字符类型
- clone()¶
返回此存储的副本
- complex_double()¶
将此存储转换为复数双精度类型
- complex_float()¶
将此存储转换为复数浮点类型
- copy_()¶
- cpu()¶
如果此存储不在 CPU 上,则返回其在 CPU 上的副本。
- cuda(device=None, non_blocking=False, **kwargs)¶
返回此对象在CUDA内存中的副本。
如果该对象已经在CUDA内存中并且位于正确的设备上,那么不会执行复制操作,并返回原始对象。
- data_ptr()¶
- double()¶
将此存储转换为双精度类型
- element_size()¶
- fill_()¶
- float()¶
将此存储转换为浮点类型
- static from_buffer()¶
- static from_file(filename, shared=False, size=0) Storage¶
如果 shared 是 True,则所有进程之间共享内存。 所有更改都会写入文件。如果 shared 是 False,则存储中的更改不会影响文件。
size 是存储中的元素数量。如果 shared 是 False, 则文件必须至少包含 size * sizeof(Type) 字节 (Type 是存储类型)。如果 shared 是 True,文件将被 创建(如需要)。
- half()¶
将此存储转换为半精度类型
- hpu(device=None, non_blocking=False, **kwargs)¶
返回此对象在HPU内存中的副本。
如果该对象已经在HPU内存中并且位于正确的设备上,那么不会执行复制操作,并返回原始对象。
- int()¶
将此存储转换为 int 类型
- property is_cuda¶
- property is_hpu¶
- is_pinned(device='cuda')¶
确定CPU存储是否已在设备上固定。
- Parameters
device (str 或 torch.device) – 要固定内存的设备。默认值:
'cuda'.- Returns
一个布尔变量。
- long()¶
将此存储转换为长整型
- mps()¶
如果此存储不在 MPS 上,则返回其 MPS 副本。
- nbytes()¶
- new()¶
- pin_memory(device='cuda')¶
如果存储尚未固定,则将 CPU 存储复制到固定内存中。
- Parameters
device (str 或 torch.device) – 要固定内存的设备。默认值:
'cuda'.- Returns
一个固定在 CPU 上的存储。
- resize_()¶
- short()¶
将此存储转换为 short 类型
- tolist()¶
返回一个包含此存储元素的列表
- type(dtype=None, non_blocking=False, **kwargs)¶
如果未提供 dtype,则返回类型,否则将此对象转换为指定的类型。
如果已经是正确的类型,则不会执行复制操作,并返回原始对象。
- untyped()¶
- class torch.DoubleStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.FloatStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.HalfStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.LongStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.ShortStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.CharStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.ByteStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.BoolStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.BFloat16Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.ComplexDoubleStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.ComplexFloatStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.QUInt8Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.QInt8Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶
- class torch.QInt32Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]¶