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]。- Variables
数据 (张量) – 包含打包序列的张量
batch_sizes (张量) – 包含每个序列步骤的批次大小信息的整数张量
sorted_indices (张量, 可选) – 整数张量,表示如何从序列构建此
PackedSequence。unsorted_indices (Tensor, 可选) – 整数张量,用于恢复原始序列并保持正确的顺序。
注意
data可以在任意设备上,并且可以是任意数据类型。sorted_indices和unsorted_indices必须是torch.int64张量,并且与data在同一设备上。然而,
batch_sizes应该始终是一个 CPUtorch.int64张量。在整个
PackedSequence类中,这个不变量得到了保持,并且在PyTorch中所有构造PackedSequence的函数中也是如此 (即,它们只传递符合此约束的张量)。- count(value, /)¶
返回值出现的次数。
- index(value, start=0, stop=9223372036854775807, /)¶
返回值的第一个索引。
如果值不存在,则引发ValueError。
- property is_cuda¶
如果self.data存储在GPU上,则返回true。
- to(*args, **kwargs)[源代码]¶
对 self.data 执行 dtype 和/或设备转换。
它与
torch.Tensor.to()具有相似的签名,除了像 non_blocking 和 copy 这样的可选参数应该作为关键字参数传递,而不是位置参数,否则它们不会应用于索引张量。注意
如果
self.data张量已经具有正确的torch.dtype和torch.device,则返回self。 否则,返回具有所需配置的副本。