基于时间的分布式嵌入袋#
- 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的包)将返回填充为零的向量。