torch.Storage¶
torch.Storage
是存储类的别名,对应于
默认数据类型 ()。例如,如果
默认数据类型为 ,解析为
。
torch.float
torch.Storage
和 类,
like 、
等不是
实际上曾经实例化。调用它们的构造函数会创建
a
与适当的
和
。 类具有所有
相同的类方法。
torch.<type>Storage
torch.cuda.<type>Storage
torch.<type>Storage
A 是
特定
.它可以被赋予 any
,并且内部数据将被适当地解释。
包含一个
将数据保存为无类型的字节数组。
警告
除 外的所有存储类都将被删除
将来,
并将在所有情况下使用。
- 类 Torch 的 Torch 类TypedStorage(*args, wrap_storage=无, dtype=无, device=无, _internal=错误)[来源]¶
- cuda(device=None, non_blocking=False)[来源]¶
返回 CUDA 内存中此对象的副本。
如果此对象已在 CUDA 内存中并且位于正确的设备上,则 不执行复制,返回原始对象。
- property device (设备) ¶
- 类方法 from_file(filename, shared=False, size=0) Storage [源]¶
创建由内存映射文件支持的 CPU 存储。
如果为 ,则内存在所有进程之间共享。 所有更改都将写入文件。如果为 ,则对 存储不会影响文件。
shared
True
shared
False
size
是存储中的元素数。如果 是 , 则文件必须至少包含 bytes ( 是存储类型)。如果是,则根据需要创建文件。shared
False
size * sizeof(Type)
Type
shared
True
- 参数
filename (str) – 要映射的文件名
shared (bool) – 是否共享内存(无论 还是传递给 底层 mmap(2) 调用
MAP_SHARED
MAP_PRIVATE
)size (int) – 存储空间中的元素数量
- hpu(device=None, non_blocking=False)[来源]¶
返回 HPU 内存中此对象的副本。
如果此对象已在 HPU 内存中且位于正确的设备上,则 不执行复制,返回原始对象。
- 属性is_cuda¶
- 属性is_hpu¶
- is_pinned(device='cuda')[来源]¶
确定 CPU TypedStorage 是否已固定在设备上。
- 参数
device (str 或 torch.device) – 要固定内存的设备。违约:
'cuda'
- 返回
布尔变量。
- is_sparse = False¶
- pin_memory(device='cuda')[来源]¶
将 CPU TypedStorage 复制到固定内存(如果尚未固定)。
- 参数
device (str 或 torch.device) – 要固定内存的设备。违约:。
'cuda'
- 返回
固定的 CPU 存储。
- 类 Torch 的 Torch 类UntypedStorage(*args, **kwargs)[来源]¶
- bfloat16()¶
将此存储强制转换为 bfloat16 类型。
- 布尔()¶
将此存储强制转换为 bool 类型。
- 字节()¶
将此存储强制转换为 byte 类型。
- byteswap(dtype)¶
交换基础数据中的字节。
- 煳()¶
将此存储强制转换为 char 类型。
- 克隆()¶
返回此存储的副本。
- complex_double()¶
将此存储强制转换为复杂的 double 类型。
- complex_float()¶
将此存储强制转换为复杂的 float 类型。
- 复制_()¶
- 中央处理器()¶
如果此存储尚未在 CPU 上,则返回该存储的 CPU 副本。
- cuda(device=None, non_blocking=False)¶
返回 CUDA 内存中此对象的副本。
如果此对象已在 CUDA 内存中并且位于正确的设备上,则 不执行复制,返回原始对象。
- data_ptr()¶
- 双()¶
将此存储转换为 double 类型。
- element_size()¶
- 填补_()¶
- 浮()¶
将此存储强制转换为 float 类型。
- float8_e4m3fn()¶
将此存储强制转换为 float8_e4m3fn 类型
- float8_e4m3fnuz()¶
将此存储强制转换为 float8_e4m3fnuz 类型
- float8_e5m2()¶
将此存储强制转换为 float8_e5m2 类型
- float8_e5m2fnuz()¶
将此存储强制转换为 float8_e5m2fnuz 类型
- 静态from_buffer()¶
- 静态 from_file(文件名, shared=False, size=0) 存储 ¶
创建由内存映射文件支持的 CPU 存储。
如果为 ,则内存在所有进程之间共享。 所有更改都将写入文件。如果为 ,则对 存储不会影响文件。
shared
True
shared
False
size
是存储中的元素数。如果 是 , 则文件必须至少包含 bytes ( 是存储类型,如果文件必须包含在 最少字节数)。如果是,则根据需要创建文件。shared
False
size * sizeof(Type)
Type
UnTypedStorage
size
shared
True
- 参数
filename (str) – 要映射的文件名
共享 (bool) –
是否共享内存(无论 或 传递给 底层 mmap(2) 调用
MAP_SHARED
MAP_PRIVATE
)size (int) – 存储空间中的元素数量
- 半()¶
将此存储强制转换为 half type。
- hpu(device=无,non_blocking=False)¶
返回 HPU 内存中此对象的副本。
如果此对象已在 HPU 内存中且位于正确的设备上,则 不执行复制,返回原始对象。
- int()¶
将此存储强制转换为 int 类型。
- 属性is_cuda¶
- 属性is_hpu¶
- is_pinned(device='cuda')¶
确定 CPU 存储是否已固定在设备上。
- 参数
device (str 或 torch.device) – 要固定内存的设备。违约:。
'cuda'
- 返回
布尔变量。
- 长()¶
将此存储强制转换为 long 类型。
- 议员()¶
如果此存储尚未在 MPS 上,请返回该存储的 MPS 副本。
- n字节()¶
- 新增功能()¶
- pin_memory(device='cuda')¶
将 CPU 存储复制到固定内存(如果尚未固定)。
- 参数
device (str 或 torch.device) – 要固定内存的设备。违约:。
'cuda'
- 返回
固定的 CPU 存储。
- 可调整大小()¶
- 调整_()¶
将存储移动到共享内存。
对于共享内存中已有的存储和 CUDA,这是无操作 存储,无需移动即可跨进程共享。 共享内存中的存储无法调整大小。
请注意,为了缓解此类问题,从同一对象上的多个线程调用此函数是线程安全的。 但是,在没有适当的 同步。有关更多详细信息,请参阅 Multiprocessing 最佳实践。
注意
删除对共享内存中存储的所有引用时,关联的共享内存 对象也将被删除。PyTorch 有一个特殊的清理过程来确保这种情况发生 即使当前进程意外退出。
值得注意的是 和
with 之间的区别
shared = True
share_memory_
使用 shm_open(3) 创建一个 POSIX 共享内存对象 while使用 open(2) 打开用户传递的文件名。
两者都使用 mmap(2) 调用 with 将文件/对象映射到当前的虚拟地址空间
MAP_SHARED
share_memory_
将在映射对象后调用对象,以确保共享内存 当没有进程打开对象时,将释放对象。 不会取消链接 文件。此文件是永久性的,将一直保留,直到用户将其删除。shm_unlink(3)
torch.from_file(shared=True)
- 返回
self
- 短()¶
将此存储转换为 short type。
- to(*, device, non_blocking=False)¶
- 返回类型
T
- TOLIST()¶
返回包含此存储元素的列表。
- type(dtype=None, non_blocking=False, **kwargs)¶
如果未提供 dtype,则返回类型,否则将此对象强制转换为 指定的类型。
如果此类型已正确,则不会执行复制,并且 返回 original 对象。
- 无类型()¶