目录

torch.Storage

torch.Storage 是对应默认数据类型(torch.get_default_dtype())的存储类的别名。例如,如果默认数据类型是 torch.float,则 torch.Storage 解析为 torch.FloatStorage

torch.<type>Storagetorch.cuda.<type>Storage 类, 如 torch.FloatStorage, torch.IntStorage 等,实际上从未被实例化。调用它们的构造函数会创建一个带有适当 torch.dtypetorch.devicetorch.TypedStoragetorch.<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]
bfloat16()[source]

将此存储转换为 bfloat16 类型

bool()[source]

将此存储转换为布尔类型

byte()[source]

将此存储转换为字节类型

char()[source]

将此存储转换为字符类型

clone()[source]

返回此存储的副本

complex_double()[source]

将此存储转换为复数双精度类型

complex_float()[source]

将此存储转换为复数浮点类型

copy_(source, non_blocking=None)[source]
cpu()[source]

如果此存储不在 CPU 上,则返回其在 CPU 上的副本。

cuda(device=None, non_blocking=False, **kwargs)[source]

返回此对象在CUDA内存中的副本。

如果该对象已经在CUDA内存中并且位于正确的设备上,那么不会执行复制操作,并返回原始对象。

Parameters
  • 设备 (int) – 目标GPU的ID。默认为当前设备。

  • non_blocking (bool) – 如果 True 且源在锁定内存中, 复制将异步于主机。否则, 该参数无效。

  • **kwargs – 为了兼容性,可以包含键 async 代替 non_blocking 参数。

Return type

T

data_ptr()[source]
property device
double()[source]

将此存储转换为双精度类型

dtype: dtype
element_size()[source]
fill_(value)[source]
float()[source]

将此存储转换为浮点类型

classmethod from_buffer(*args, **kwargs)[source]
classmethod from_file(filename, shared=False, size=0) Storage[source]

如果 sharedTrue,则所有进程之间共享内存。 所有更改都会写入文件。如果 sharedFalse,则存储中的更改不会影响文件。

size 是存储中的元素数量。如果 sharedFalse, 则文件必须至少包含 size * sizeof(Type) 字节 (Type 是存储类型)。如果 sharedTrue,文件将被 创建(如需要)。

Parameters
  • 文件名 (str) – 要映射的文件名

  • 共享 (布尔值) – 是否共享内存

  • 大小 (int) – 存储中的元素数量

get_device()[source]
Return type

整数

half()[source]

将此存储转换为半精度类型

hpu(device=None, non_blocking=False, **kwargs)[source]

返回此对象在HPU内存中的副本。

如果该对象已经在HPU内存中并且位于正确的设备上,那么不会执行复制操作,并返回原始对象。

Parameters
  • 设备 (int) – 目标HPU的ID。默认为当前设备。

  • non_blocking (bool) – 如果 True 且源在锁定内存中, 复制将异步于主机。否则, 该参数无效。

  • **kwargs – 为了兼容性,可以包含键 async 代替 non_blocking 参数。

Return type

T

int()[source]

将此存储转换为 int 类型

property is_cuda
property is_hpu
is_pinned(device='cuda')[source]

确定 CPU TypedStorage 是否已在设备上固定。

Parameters

device (strtorch.device) – 要固定内存的设备。默认值: 'cuda'

Returns

一个布尔变量。

is_shared()[source]
is_sparse = False
long()[source]

将此存储转换为长整型

nbytes()[source]
pickle_storage_type()[source]
pin_memory(device='cuda')[source]

如果 CPU TypedStorage 尚未固定,则将其复制到固定内存中。

Parameters

device (strtorch.device) – 要固定内存的设备。默认值: 'cuda'.

Returns

一个固定在 CPU 上的存储。

resize_(size)[source]
share_memory_()[source]

将存储移动到共享内存。

对于已经位于共享内存中的存储以及不需要跨进程共享的 CUDA 存储,此操作不会产生任何效果。共享内存中的存储无法调整大小。

返回值: self

short()[source]

将此存储转换为 short 类型

size()[source]
tolist()[source]

返回一个包含此存储元素的列表

type(dtype=None, non_blocking=False)[source]

如果未提供 dtype,则返回类型,否则将此对象转换为指定的类型。

如果已经是正确的类型,则不会执行复制操作,并返回原始对象。

Parameters
  • dtype (类型字符串) – 所需的类型

  • non_blocking (bool) – 如果 True,并且源在固定内存中而目标在GPU上或相反,则复制操作相对于主机是异步执行的。否则,该参数没有效果。

  • **kwargs – 为了兼容性,可能包含键 async 来代替 non_blocking 参数。参数 async 已弃用。

Return type

联合[T, 字符串]

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内存中并且位于正确的设备上,那么不会执行复制操作,并返回原始对象。

Parameters
  • 设备 (int) – 目标GPU的ID。默认为当前设备。

  • non_blocking (bool) – 如果 True 且源在锁定内存中, 复制将异步于主机。否则, 该参数无效。

  • **kwargs – 为了兼容性,可以包含键 async 代替 non_blocking 参数。

data_ptr()
device: device
double()

将此存储转换为双精度类型

element_size()
fill_()
float()

将此存储转换为浮点类型

static from_buffer()
static from_file(filename, shared=False, size=0) Storage

如果 sharedTrue,则所有进程之间共享内存。 所有更改都会写入文件。如果 sharedFalse,则存储中的更改不会影响文件。

size 是存储中的元素数量。如果 sharedFalse, 则文件必须至少包含 size * sizeof(Type) 字节 (Type 是存储类型)。如果 sharedTrue,文件将被 创建(如需要)。

Parameters
  • 文件名 (str) – 要映射的文件名

  • 共享 (布尔值) – 是否共享内存

  • 大小 (int) – 存储中的元素数量

get_device()
Return type

整数

half()

将此存储转换为半精度类型

hpu(device=None, non_blocking=False, **kwargs)

返回此对象在HPU内存中的副本。

如果该对象已经在HPU内存中并且位于正确的设备上,那么不会执行复制操作,并返回原始对象。

Parameters
  • 设备 (int) – 目标HPU的ID。默认为当前设备。

  • non_blocking (bool) – 如果 True 且源在锁定内存中, 复制将异步于主机。否则, 该参数无效。

  • **kwargs – 为了兼容性,可以包含键 async 代替 non_blocking 参数。

int()

将此存储转换为 int 类型

property is_cuda
property is_hpu
is_pinned(device='cuda')

确定CPU存储是否已在设备上固定。

Parameters

device (strtorch.device) – 要固定内存的设备。默认值: 'cuda'.

Returns

一个布尔变量。

is_shared()
is_sparse: bool = False
is_sparse_csr: bool = False
long()

将此存储转换为长整型

mps()

如果此存储不在 MPS 上,则返回其 MPS 副本。

nbytes()
new()
pin_memory(device='cuda')

如果存储尚未固定,则将 CPU 存储复制到固定内存中。

Parameters

device (strtorch.device) – 要固定内存的设备。默认值: 'cuda'.

Returns

一个固定在 CPU 上的存储。

resize_()
share_memory_(*args, **kwargs)[source]
short()

将此存储转换为 short 类型

size()
Return type

整数

tolist()

返回一个包含此存储元素的列表

type(dtype=None, non_blocking=False, **kwargs)

如果未提供 dtype,则返回类型,否则将此对象转换为指定的类型。

如果已经是正确的类型,则不会执行复制操作,并返回原始对象。

Parameters
  • dtype (类型字符串) – 所需的类型

  • non_blocking (bool) – 如果 True,并且源在固定内存中而目标在GPU上或相反,则复制操作相对于主机是异步执行的。否则,该参数没有效果。

  • **kwargs – 为了兼容性,可能包含键 async 来代替 non_blocking 参数。参数 async 已弃用。

untyped()
class torch.DoubleStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.float64[source]
class torch.FloatStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.float32[source]
class torch.HalfStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.float16[source]
class torch.LongStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.int64[source]
class torch.IntStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.int32[source]
class torch.ShortStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.int16[source]
class torch.CharStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.int8[source]
class torch.ByteStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.uint8[source]
class torch.BoolStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.bool[source]
class torch.BFloat16Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.bfloat16[source]
class torch.ComplexDoubleStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.complex128[source]
class torch.ComplexFloatStorage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.complex64[source]
class torch.QUInt8Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.quint8[source]
class torch.QInt8Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.qint8[source]
class torch.QInt32Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.qint32[source]
class torch.QUInt4x2Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.quint4x2[source]
class torch.QUInt2x4Storage(*args, wrap_storage=None, dtype=None, device=None, _internal=False)[source]
dtype: dtype = torch.quint2x4[source]

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源