PackedSequence¶
- class torch.nn.utils.rnn.PackedSequence(data, batch_sizes=None, sorted_indices=None, unsorted_indices=None)[source][source]¶
存储打包序列的数据和
batch_sizes
的列表。所有 RNN 模块都接受打包序列作为输入。
注意
此类实例不应手动创建。它们应由类似
pack_padded_sequence()
这样的函数实例化。批大小表示每个序列步骤中元素的数量,而不是传递给
pack_padded_sequence()
的变长序列长度。例如,给定数据abc
和x
,PackedSequence
将包含数据axbc
,其中batch_sizes=[2,1,1]
。- 变量:
data(张量)- 包含打包序列的张量
batch_sizes(张量)- 包含每个序列步骤的批量大小的整数张量
sorted_indices(整数 Tensor,可选)- 表示如何从序列中构建
PackedSequence
的整数 Tensor。unsorted_indices(整数 Tensor,可选)- 表示如何恢复具有正确顺序的原始序列。
- 返回类型:
注意
data
可以位于任意设备上,并且可以是任意数据类型的。sorted_indices
和unsorted_indices
必须是与data
相同的设备上的torch.int64
张量。然而,
batch_sizes
始终应该是一个 CPUtorch.int64
张量。此不变量在整个
PackedSequence
类及其所有构建PackedSequence
的函数(即它们只传递符合此约束的张量)中保持不变。- 批处理大小 Tensor
字段编号 1 的别名
- 计算值出现的次数。
返回值出现的次数。
- 数据 Tensor
字段编号 0 的别名
- 返回值首次出现的位置。参数:value(值),start(起始位置,默认为 0),stop(结束位置,默认为 9223372036854775807)。
返回值首次出现的位置。
如果值不存在,则引发 ValueError。
- 属性 is_cudabool
返回 self.data 存储在 GPU 上的结果。
- to(dtype: torch.dtype, non_blocking: bool = ..., copy: bool = ...) Self [source][source]¶
- to(device: Optional[Union[str, torch.device, int]] = ..., dtype: Optional[torch.dtype] = ..., non_blocking: bool = ..., copy: bool = ...) Self
- to(other: Tensor, non_blocking: bool = ..., copy: bool = ...) Self
对 self.data 执行数据类型和/或设备转换。
它的签名与
torch.Tensor.to()
相似,但可选参数如 non_blocking 和 copy 应作为 kwargs 传递,否则它们将不会应用于索引张量。注意
如果
self.data
Tensor 已经具有正确的torch.dtype
和torch.device
,则返回self
。否则,返回具有所需配置的副本。