基于时间的分布式嵌入袋#

class pytorch_forecasting.models.nn.embeddings.TimeDistributedEmbeddingBag(*args, batch_first: bool = False, **kwargs)[来源]#

基础: EmbeddingBag

初始化内部模块状态,由 nn.Module 和 ScriptModule 共享。

方法

forward(x)

EmbeddingBag的前向传播。

forward(x)[来源]#

EmbeddingBag 的前向传播。

Parameters:
  • 输入 (张量) – 包含嵌入矩阵中索引包的张量。

  • offsets (Tensor, 可选) – 仅在 input 为 1D 时使用。 offsets 确定 每个包(序列)在 input 中的起始索引位置。

  • per_sample_weights (Tensor, 可选) – 一个浮点数/双精度的权重张量,或者为 None 以表示所有权重应被视为 1。如果指定,per_sample_weights 必须具有与输入完全相同的形状,并且被视为具有相同的 offsets,如果这些不是 None。仅在 mode='sum' 时支持。

Returns:

张量输出形状为 (B, embedding_dim)

注意

关于 inputoffsets 的几点说明:

  • inputoffsets 必须为相同类型,可以是 int 或 long

  • 如果 input 是形状为 (B, N) 的二维数组,它将被视为 B 个固定长度为 N 的包(序列),并且这将返回根据 mode 以某种方式聚合的 B 个值。在这种情况下,offsets 会被忽略并且需要为 None

  • 如果 input 是形状为 (N) 的一维数据,它将被视为多个包(序列)的连接。 offsets 需要是一个一维张量,包含 input 中每个包的起始索引位置。因此,对于形状为 (B)offsetsinput 将被视为包含 B 个包。空包(即,长度为0的包)将返回填充为零的向量。