评价此页

PackedSequence#

class torch.nn.utils.rnn.PackedSequence(data, batch_sizes=None, sorted_indices=None, unsorted_indices=None)[source]#

存储已打包序列的数据和 batch_sizes 列表。

所有 RNN 模块都接受已打包序列作为输入。

注意

此类的实例不应手动创建。它们应由 pack_padded_sequence() 等函数实例化。

Batch sizes 表示批次中每个序列步的元素数量,而不是传递给 pack_padded_sequence() 的可变序列长度。例如,给定数据 abcxPackedSequence 将包含数据 axbc,其中 batch_sizes=[2,1,1]

变量
  • data (Tensor) – 包含已打包序列的张量

  • batch_sizes (Tensor) – 包含每个序列步批次大小信息的整数张量

  • sorted_indices (Tensor, optional) – 包含此 PackedSequence 如何从序列构建的整数张量。

  • unsorted_indices (Tensor, optional) – 包含如何恢复具有正确顺序的原始序列的整数张量。

返回类型

自我

注意

data 可以位于任意设备和任意 dtype 上。sorted_indicesunsorted_indices 必须是与 data 相同设备上的 torch.int64 张量。

但是,batch_sizes 必须始终是 CPU torch.int64 张量。

此不变量在 PackedSequence 类中一直保持,并且 PyTorch 中所有构造 PackedSequence 的函数(即,它们仅传入符合此约束的张量)。

batch_sizes: Tensor#

Alias for field number 1

count(value, /)#

返回值的出现次数。

data: Tensor#

Alias for field number 0

index(value, start=0, stop=9223372036854775807, /)#

返回值的第一个索引。

如果值不存在,则引发 ValueError。

property is_cuda: bool#

如果 self.data 存储在 GPU 上,则返回 True。

is_pinned()[source]#

如果 self.data 存储在固定内存中,则返回 True。

返回类型

布尔值

sorted_indices: Optional[Tensor]#

字段编号 2 的别名

to(dtype: dtype, non_blocking: bool = ..., copy: bool = ...) Self[source]#
to(device: Optional[Union[str, device, int]] = ..., dtype: Optional[dtype] = ..., non_blocking: bool = ..., copy: bool = ...) Self
to(other: Tensor, non_blocking: bool = ..., copy: bool = ...) Self

self.data 执行 dtype 和/或 device 转换。

它具有与 torch.Tensor.to() 相似的签名,但像 non_blockingcopy 这样的可选参数应作为 kwargs 传递,而不是 args,否则它们将不适用于索引张量。

注意

如果 self.data 张量已具有正确的 torch.dtypetorch.device,则返回 self。否则,返回具有所需配置的副本。

unsorted_indices: Optional[Tensor]#

字段编号 3 的别名