基于时间的分布式嵌入袋#
- 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)。
注意
关于
input和offsets的几点说明:input和offsets必须为相同类型,可以是 int 或 long如果
input是形状为 (B, N) 的二维数组,它将被视为B个固定长度为N的包(序列),并且这将返回根据mode以某种方式聚合的B个值。在这种情况下,offsets会被忽略并且需要为None。如果
input是形状为 (N) 的一维数据,它将被视为多个包(序列)的连接。offsets需要是一个一维张量,包含input中每个包的起始索引位置。因此,对于形状为 (B) 的offsets,input将被视为包含B个包。空包(即,长度为0的包)将返回填充为零的向量。