PackedSequence#
- class torch.nn.utils.rnn.PackedSequence(data, batch_sizes=None, sorted_indices=None, unsorted_indices=None)[source]#
存储已打包序列的数据和
batch_sizes列表。所有 RNN 模块都接受已打包序列作为输入。
注意
此类的实例不应手动创建。它们应由
pack_padded_sequence()等函数实例化。Batch sizes 表示批次中每个序列步的元素数量,而不是传递给
pack_padded_sequence()的可变序列长度。例如,给定数据abc和x,PackedSequence将包含数据axbc,其中batch_sizes=[2,1,1]。- 变量
data (Tensor) – 包含已打包序列的张量
batch_sizes (Tensor) – 包含每个序列步批次大小信息的整数张量
sorted_indices (Tensor, optional) – 包含此
PackedSequence如何从序列构建的整数张量。unsorted_indices (Tensor, optional) – 包含如何恢复具有正确顺序的原始序列的整数张量。
- 返回类型
自我
注意
data可以位于任意设备和任意 dtype 上。sorted_indices和unsorted_indices必须是与data相同设备上的torch.int64张量。但是,
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[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 和/或 device 转换。
它具有与
torch.Tensor.to()相似的签名,但像 non_blocking 和 copy 这样的可选参数应作为 kwargs 传递,而不是 args,否则它们将不适用于索引张量。注意
如果
self.data张量已具有正确的torch.dtype和torch.device,则返回self。否则,返回具有所需配置的副本。