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()
的变化序列长度。例如,对于数据abc
和x
,PackedSequence
将包含数据axbc
并且batch_sizes=[2,1,1]
。- 变量
-
-
data (Tensor) – 含有打包序列的张量
-
batch_sizes (Tensor) – 一个包含每个序列步骤批次大小信息的整数张量
-
sorted_indices (Tensor, optional) – 表示该
PackedSequence
是如何从序列构建的整数 Tensor。 -
unsorted_indices (Tensor, 可选) – 用于存储如何恢复原始序列正确顺序的整数 Tensor。
-
- 返回类型
-
注意
data
可以位于任意设备上,并且可以是任意数据类型。sorted_indices
和unsorted_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。
- 转换为(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_blocking和copy应该作为关键字参数传递,而不是位置参数,否则它们将不适用于索引张量。注意
如果
self.data
张量已经具有正确的torch.dtype
和torch.device
,则返回self
。否则,返回一个具有所需配置的新副本。