PackedSequence¶
- class torch.nn.utils.rnn.PackedSequence(data, batch_sizes=None, sorted_indices=None, unsorted_indices=None)[source][source]¶
保存 packed sequence 的 data 和
batch_sizes
列表。所有 RNN 模块都接受 packed sequences 作为输入。
注意
不应手动创建此类实例。它们应由诸如
pack_padded_sequence()
之类的函数实例化。Batch sizes 表示 batch 中每个序列步骤的元素数量,而不是传递给
pack_padded_sequence()
的变化序列长度。例如,给定数据abc
和x
,PackedSequence
将包含数据axbc
和batch_sizes=[2,1,1]
。- 变量
data (Tensor) – 包含 packed sequence 的 Tensor
batch_sizes (Tensor) – 包含每个序列步骤 batch 大小信息的整数 Tensor
sorted_indices (Tensor, 可选) – 包含此
PackedSequence
如何由序列构建而来的整数 Tensor。unsorted_indices (Tensor, 可选) – 包含如何以正确顺序恢复原始序列的整数 Tensor。
- 返回类型
Self
注意
data
可以位于任意设备上并具有任意 dtype。sorted_indices
和unsorted_indices
必须是与data
相同设备上的torch.int64
张量。然而,
batch_sizes
应该始终是 CPUtorch.int64
张量。此不变量在整个
PackedSequence
类中保持,并且在 PyTorch 中构建PackedSequence
的所有函数(即,它们仅传递符合此约束的张量)中也保持。- count(value, /)¶
返回 value 出现的次数。
- index(value, start=0, stop=9223372036854775807, /)¶
返回 value 第一次出现的索引。
如果值不存在,则引发 ValueError。
- to(dtype: dtype, non_blocking: bool = ..., copy: bool = ...) Self [source][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 和/或设备转换。
它具有与
torch.Tensor.to()
相似的签名,但像 non_blocking 和 copy 这样的可选参数应作为 kwargs 而不是 args 传递,否则它们将不适用于索引张量。注意
如果
self.data
张量已经具有正确的torch.dtype
和torch.device
,则返回self
。否则,返回具有所需配置的副本。