PackedSequence

classtorch.nn.utils.rnn.PackedSequence(data, batch_sizes=None, sorted_indices=None, unsorted_indices=None)[源代码]

持有数据以及batch_sizes列表,表示打包序列的大小。

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

注意

不应手动创建此类的实例,而应由如 pack_padded_sequence() 这样的函数来实例化。

批量大小表示每个序列步骤中的元素数量,而不是传递给pack_padded_sequence() 的变化序列长度。例如,对于数据abcxPackedSequence 将包含数据axbc 并且batch_sizes=[2,1,1]

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

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

  • sorted_indices (Tensor, optional) – 表示该 PackedSequence 是如何从序列构建的整数 Tensor。

  • unsorted_indices (Tensor, 可选) – 用于存储如何恢复原始序列正确顺序的整数 Tensor。

返回类型

注意

data 可以位于任意设备上,并且可以是任意数据类型。sorted_indicesunsorted_indices 必须与 data 在同一设备上,并且类型为 torch.int64 的张量。

然而,batch_sizes 应始终是位于 CPU 上的一个 torch.int64 张量。

这个不变量在整个PackedSequence 类以及 PyTorch 中构建 PackedSequence 的所有函数中都得到了保持(即,它们只传递符合此约束条件的张量)。

batch_sizes: Tensor

字段 1 的别名

count(value, /)

返回值的数量。

数据:张量

字段 0 的别名

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

返回值的首个索引。

若值不存在,则抛出 ValueError 异常。

属性is_cuda:bool

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

is_pinned()[源代码]

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

返回类型

bool

sorted_indices:Optional[Tensor]

字段 2 的别名

转换为(dtype:dtype, non_blocking:bool=..., copy:bool=...) Self[源代码]
(设备:Optional[Union[str,device,int]]=..., 数据类型:Optional[dtype]=..., 非阻塞:bool=..., 复制:bool=...) Self
(other:Tensor, non_blocking:bool=..., copy:bool=...) Self

self.data进行数据类型和/或设备的转换。

它具有与torch.Tensor.to()类似的签名。但是,可选参数如non_blockingcopy应该作为关键字参数传递,而不是位置参数,否则它们将不适用于索引张量。

注意

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

unsorted_indices:Optional[Tensor]

字段 3 的别名

本页目录