gluonts.mx.util 模块#
- class gluonts.mx.util.HybridContext(net: mxnet.gluon.block.HybridBlock, hybridize: bool, data_batch: Optional[List[mxnet.ndarray.ndarray.NDArray]] = None, **kwargs)[source]#
- 基类: - object- 一个上下文管理器,确保 MXNet 网络在混合/非混合模式下运行。 - 参数
- net – 在封闭上下文中必须修改其混合模式的网络。 
- hybridize – 一个布尔标志,指示是否应设置混合模式。 
- kwargs – 一个可选参数字典,传递给封闭的 HybridBlock 网络的 hybridize() 调用。 
 
 
- gluonts.mx.util.assert_shape(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], expected_shape: Tuple[int, ...])[source]#
- 如果模式是 mx.nd,则断言期望的形状。 - 参数
- x – 输入张量 
- expected_shape – 期望的形状 
 
 
- gluonts.mx.util.copy_parameters(net_source: mxnet.gluon.block.Block, net_dest: mxnet.gluon.block.Block, ignore_extra: bool = False, allow_missing: bool = False) None[source]#
- 将参数从一个网络复制到另一个网络。 - 参数
- net_source – 输入网络。 
- net_dest – 输出网络。 
- ignore_extra – 是否忽略源中存在但在目标中不存在的参数。 
- allow_missing – 是否允许目标中存在源中不存在的额外参数。 
 
 
- gluonts.mx.util.cumsum(F, x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], exclusive: bool = False, reverse: bool = False) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 通过乘以下三角全一矩阵计算最后一轴上的累积和 \[\begin{split}\operatorname{cumsum}(x) = \begin{cases} \operatorname{ltr\_ones} \times x & \text{for cumulative sum}\\ x \times \operatorname{ltr\_ones} & \text{for cumulative sum in the reverse order} \end{cases}\end{split}\]- 也支持 exclusive 标志以零开始累积和。例如,如果 \(x = [a, b, c]\),我们有 \[\begin{split}\operatorname{cumsum}(x) = \begin{cases} [a, a + b, a + b + c] & \text{if }\mathit{reverse = False, exclusive = False}\\ [0, a, a + b] & \text{if }\mathit{reverse = False, exclusive = True}\\ [a + b + c, b + c, c] & \text{if }\mathit{reverse = True, exclusive = False}\\ [b + c, c, 0] & \text{if }\mathit{reverse = True, exclusive = True}\\ \end{cases}\end{split}\]- 参数
- F – 要使用的函数空间。 
- x – 形状为 \((..., n)\) 的张量。 
- exclusive – 如果为 True,累积和从零开始。 
- reverse – 如果为 True,累积和沿相反方向执行。 
 
- 返回
- 一个具有相同形状且最后一轴上具有累积和的修改后的张量。 
- 返回类型
- 张量 
 
- gluonts.mx.util.export_repr_block(rb: mxnet.gluon.block.HybridBlock, model_dir: pathlib.Path, model_name: str, epoch: int = 0) None[source]#
- 序列化一个可表示的 Gluon block。 - 参数
- rb – 要导出的 block。 
- model_dir – 模型将保存的路径。 
- model_name – 标识模型的名称。 
- epoch – epoch 数,与 model_name 一起标识模型参数。 
 
 
- gluonts.mx.util.export_symb_block(hb: mxnet.gluon.block.HybridBlock, model_dir: pathlib.Path, model_name: str, epoch: int = 0) None[source]#
- 序列化一个混合后的 Gluon HybridBlock。 - 参数
- hb – 要导出的 block。 
- model_dir – 模型将保存的路径。 
- model_name – 标识模型的名称。 
- epoch – epoch 数,与 model_name 一起标识模型参数。 
 
 
- model_dir – 模型保存的路径。
- gluonts.mx.util.get_hybrid_forward_input_names(hybrid_block_type: Type[mxnet.gluon.block.HybridBlock])[source]#
- 将 Gluon HybridBlock 转换为 SymbolBlock。按照 Gluon API 的方式,这通过对传入的 HybridBlock 调用 hybridize(),进行一次前向传播(使用提供的数据批量),以及输入 block 的 export() 和 import() 调用的组合来实现。 - 请注意,MXNet 在使用此方法时存在问题。 - 参数
- hb – 要转换的 Gluon HybridBlock。 
- data_batch – 在 hybridize() 调用后用于前向传播的数据。 
 
- 返回
- 由 MXNet 符号图支持的生成的 Gluon block。 
- 返回类型
- mx.gluon.SymbolBlock 
 
- gluonts.mx.util.import_repr_block(model_dir: pathlib.Path, model_name: str, epoch: int = 0) mxnet.gluon.block.HybridBlock[source]#
- 反序列化一个可表示的 Gluon block。 - 参数
- model_dir – 模型保存的路径。 
- model_name – 标识模型的名称。 
- epoch – epoch 数,与 model_name 一起标识模型参数。 
 
- 返回
- 反序列化的 block。 
- 返回类型
- mx.gluon.HybridBlock 
 
- gluonts.mx.util.import_symb_block(num_inputs: int, model_dir: pathlib.Path, model_name: str, epoch: int = 0) mxnet.gluon.block.SymbolBlock[source]#
- 将混合后的 Gluon HybridBlock 反序列化为 SymbolBlock。 - 参数
- num_inputs – 序列化 block 的输入数量。 
- model_dir – 模型保存的路径。 
- model_name – 标识模型的名称。 
- epoch – epoch 数,与 model_name 一起标识模型参数。 
 
- 返回
- 反序列化的 block。 
- 返回类型
- mx.gluon.SymbolBlock 
 
- model_dir – 模型保存的路径。
- gluonts.mx.util.make_nd_diag(F, x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], d: int) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]# - 参数
- F – 要使用的函数空间。 
- 给定对角线,创建一个对角张量。 
- F – 要使用的函数空间。 
 
- 返回
- x – 要使用的对角线,形状为 \((..., d)\)。 
- 返回类型
- 张量 
 
- d – x 的最后一个维度。
- 一个形状为 \((..., d, d)\) 的张量 y,使得 \(y[..., i, i] = x[..., i]\)。 - gluonts.mx.util.mx_switch(F, *args, **kwargs) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]# - 用于 mxnet 的 switch 语句。 - mx_switch((A, x), (B, y), z) - 参数
- F – 要使用的函数空间。 
- 对应于 
- if A -> x elif B -> y else -> z 
 
- 返回
- args – 参数。 
- 返回类型
- 张量 
 
- kwargs – 关键字参数
- 具有相应 switch 条目的张量。 - gluonts.mx.util.weighted_average(F, x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], weights: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, axis: Optional[int] = None, include_zeros_in_denominator=False) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]# - 参数
- F – 要使用的函数空间。 
- 计算给定张量在给定轴上的加权平均值,对权重为零的值进行掩码, 
- 这意味着您将得到 0 * 0 = 0,而不是 nan * 0 = nan。 
- F – 要使用的函数空间。 
- x – 必须计算平均值的输入张量。 
 
- 返回
- weights – 权重张量,形状与 x 相同。 
- 返回类型
- 张量