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, 可选) – 包含如何使用此
PackedSequence
以正确顺序恢复原始序列的整数张量。
- 返回类型
Self
注意
data
可以是任意设备上的任意数据类型。sorted_indices
和unsorted_indices
必须是与data
相同设备上的torch.int64
张量。但是,
batch_sizes
始终应该是 CPU 上的torch.int64
张量。此不变性在整个
PackedSequence
类中保持不变,并且所有在 PyTorch 中构建PackedSequence
的函数(即,它们只传入符合此约束的张量)都是如此。- count(value, /)¶
返回 value 的出现次数。
- index(value, start=0, stop=9223372036854775807, /)¶
返回值的第一个索引。
如果值不存在,则会引发 ValueError。
- 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 执行数据类型和/或设备转换。
它的签名与
torch.Tensor.to()
类似,除了可选参数(如 non_blocking 和 copy)应作为关键字参数传递,而不是位置参数,否则它们不会应用于索引张量。注意
如果
self.data
张量已经具有正确的数据类型和设备,则返回self
。否则,返回具有所需配置的副本。