gluonts.mx.model.transformer.layers 模块#
- class gluonts.mx.model.transformer.layers.InputLayer(model_size: int = 64, **kwargs)[source]#
- 继承自: - mxnet.gluon.block.HybridBlock- 使用单层 MPL 将输入向量转换为 model_size,即 (batch_size, time_length, input_dim) -> (batch_size, time_length, model_size) 
- class gluonts.mx.model.transformer.layers.LayerNormalization(scale_init: str = 'ones', shift_init: str = 'zeros', eps: float = 1e-06, **kwargs)[source]#
- 继承自: - mxnet.gluon.block.HybridBlock- 实现 [BKH16] 中提出的层归一化。 - hybrid_forward(F, data: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 对数据的隐藏单元进行如下归一化 - data = scale * (data - mean) / sqrt(var + eps) + shift - 归一化在输入数据的最后一个维度上执行。 - 参数
- data – 要归一化的数据,形状为 (d0, …, dn, num_hidden) 
- 返回
- 归一化的输入,形状为 
- 返回类型
- (d0, …, dn, num_hidden) 
 
 
- class gluonts.mx.model.transformer.layers.MultiHeadAttention(att_dim_in: int = 32, heads: int = 8, att_dim_out: int = 32, dropout: float = 0.0, **kwargs)[source]#
- 继承自: - gluonts.mx.model.transformer.layers.MultiHeadAttentionBase- 针对与键/值独立的查询的多头注意力层。 - 参数
- att_dim_in – 注意力维度(隐藏单元数量) 
- heads – 注意力头数量 
- att_dim_out – 输出维度(输出单元数量) 
- dropout – 注意力分数上的 dropout 率 
 
 - hybrid_forward(F, queries: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], memory: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], mask: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 计算给定记忆张量的查询的多头注意力。如果提供了序列长度,则它们将用于屏蔽注意力分数。遮罩张量也可用于屏蔽注意力分数。返回形状为 (batch_size, max_length, att_dim_out) 的张量。 - 参数
- queries – 查询张量,形状为 (batch_size, query_max_length, att_dim_in) 
- memory – 要关注的记忆张量,形状为 (batch_size, memory_max_length, att_dim_in) 
- mask – 可选的用于屏蔽注意力分数的张量 
 
- 返回类型
- 形状为 (batch_size, query_seq_len, att_dim_out) 的张量 
 
 
- class gluonts.mx.model.transformer.layers.MultiHeadAttentionBase(att_dim_in: int = 32, heads: int = 8, att_dim_out: int = 32, dropout: float = 0.0, **kwargs)[source]#
- 继承自: - mxnet.gluon.block.HybridBlock- 多头注意力的基类。 - 参数
- att_dim_in – 注意力维度(隐藏单元数量) 
- heads – 注意力头数量 
- att_dim_out – 输出维度(输出单元数量) 
- dropout – 注意力分数上的 dropout 率 
 
 
- class gluonts.mx.model.transformer.layers.MultiHeadSelfAttention(att_dim_in: int = 32, heads: int = 8, att_dim_out: int = 32, dropout: float = 0.0, **kwargs)[source]#
- 继承自: - gluonts.mx.model.transformer.layers.MultiHeadAttentionBase- 多头自注意力。输入的独立线性投影用作注意力的查询、键和值。 - 参数
- att_dim_in – 注意力维度(隐藏单元数量) 
- heads – 注意力头数量 
- att_dim_out – 输出维度(输出单元数量) 
- dropout – 注意力分数上的 dropout 率 
 
 - hybrid_forward(F, inputs: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], mask: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, cache: Optional[Dict[str, Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]]]] = None) Tuple[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Optional[Dict]][source]#
- 计算对一组输入的注意力,这些输入用作查询、键和值。如果提供了序列长度,它们将用于屏蔽注意力分数。也可以使用先前计算的输入的缓存。 - 参数
- inputs – 输入数据,形状为 (batch_size, max_length, att_dim_in) 
- mask – 可选的用于屏蔽注意力分数的张量 
- cache – 包含先前计算的键和值的可选字典 
 
- 返回
- 形状为 (batch_size, max_length, att_dim_out) 的张量 
- 返回类型
- 张量 
 
 
- class gluonts.mx.model.transformer.layers.TransformerFeedForward(inner_dim: int = 32, out_dim: int = 32, act_type: str = 'softrelu', dropout: float = 0.0, **kwargs)[source]#
- 继承自: - mxnet.gluon.block.HybridBlock- 带有激活的位置前馈网络。 \[activation(XW_1 + b_1)W_2 + b_2\]- \(W_1\): (batch_size, d, inner_dim) \(W_2\): (batch_size, inner_dim, out_dim) 
- class gluonts.mx.model.transformer.layers.TransformerProcessBlock(sequence: str, dropout: float, **kwargs)[source]#
- 继承自: - mxnet.gluon.block.HybridBlock- 用于对层输入执行预处理/后处理的块。 - 处理步骤由 sequence 参数确定,该参数可以包含以下三种操作之一: n: 层归一化 r: 残差连接 d: dropout - hybrid_forward(F, data: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], prev: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 对数据应用处理序列,可选择包含先前的输入。 - 参数
- data – 输入数据,形状为:(batch_size, length, num_hidden) 
- prev – 先前数据,形状为 (batch_size, length, num_hidden) 
 
- 返回类型
- 处理后的数据,形状为 (batch_size, length, num_hidden)。 
 
 
- gluonts.mx.model.transformer.layers.combine_heads(F, x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], dim_per_head: int, heads: int) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 参数
- x – 形状为 (batch_size * heads, time_length, dim_per_head) 的张量 
- dim_per_head – 每个头的维度 
- heads – 头数量 
 
- 返回类型
- 形状为 (batch_size, time_length, dim) 的张量 
 
- gluonts.mx.model.transformer.layers.dot_attention(F, queries: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], keys: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], values: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], mask: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, dropout: float = 0.0) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 参数
- queries – 注意力查询,形状为 (n, lq, d) 
- keys – 注意力键,形状为 (n, lk, d) 
- values – 注意力值,形状为 (n, lk, dv) 
- mask – 可选的遮罩张量 
- dropout – Dropout 率 
 
- 返回类型
- 每个查询的“上下文”向量,形状为 (n, lq, dv) 
 
- gluonts.mx.model.transformer.layers.split_heads(F, x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], dim_per_head: int, heads: int) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 返回一个张量,其头维度折叠到批次维度中,最后一个维度除以头数量。 - 参数
- x – 形状为 (batch_size, time_length, dim) 的张量。 
- dim_per_head – 每个头的维度 
- heads – 头数量 
 
- 返回类型
- 形状为 (batch_size * heads, time_length, dim_per_head) 的张量。