PackedSequence¶
- class torch.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, 可选) – 整数张量,包含有关如何从序列构造此
PackedSequence
的信息。unsorted_indices (Tensor, 可选) – 整数张量,包含有关如何恢复具有正确顺序的原始序列的信息。
- 返回类型
Self
注意
data
可以在任意设备上并且具有任意 dtype。sorted_indices
和unsorted_indices
必须是torch.int64
张量,并且与data
在同一设备上。但是,
batch_sizes
应该始终是 CPUtorch.int64
张量。此不变性贯穿
PackedSequence
类,以及 PyTorch 中构造PackedSequence
的所有函数(即,它们仅传入符合此约束的张量)。- count(value, /)¶
返回值的出现次数。
- index(value, start=0, stop=9223372036854775807, /)¶
返回值的第一个索引。
如果值不存在,则引发 ValueError。
- to(dtype: dtype, non_blocking: bool = ..., copy: bool = ...) Self [源代码][源代码]¶
- 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 和/或设备转换。
它具有与
torch.Tensor.to()
类似的签名,只是像 non_blocking 和 copy 这样的可选参数应作为 kwargs 传递,而不是 args,否则它们将不适用于索引张量。注意
如果
self.data
张量已经具有正确的torch.dtype
和torch.device
,则返回self
。否则,返回具有所需配置的副本。