gluonts.mx.linalg_util module#

gluonts.mx.linalg_util.batch_diagonal(F, matrix: typing.Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], num_data_points: typing.Optional[int] = None, float_type=<class 'numpy.float32'>) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

This function extracts the diagonal of a batch matrix.

Parameters
  • F – A module that can either refer to the Symbol API or the NDArray API in MXNet.

  • matrix – matrix of shape (batch_size, num_data_points, num_data_points).

  • num_data_points – Number of rows in the kernel_matrix.

Returns

Diagonals of kernel_matrix of shape (batch_size, num_data_points, 1).

Return type

Tensor

gluonts.mx.linalg_util.jitter_cholesky(F, matrix: typing.Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], num_data_points: typing.Optional[int] = None, float_type: typing.Type = <class 'numpy.float64'>, max_iter_jitter: int = 10, neg_tol: float = -1e-08, diag_weight: float = 1e-06, increase_jitter: int = 10) Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]][source]#

This function applies the jitter method. It iteratively tries to compute the Cholesky decomposition and adds a positive tolerance to the diagonal that increases at each iteration until the matrix is positive definite or the maximum number of iterations has been reached.

Parameters
  • matrix – Kernel matrix of shape (batch_size, num_data_points, num_data_points).

  • num_data_points – Number of rows in the kernel_matrix.

  • float_type – Determines whether to use single or double precision.

  • max_iter_jitter – Maximum number of iterations for jitter to iteratively make the matrix positive definite.

  • neg_tol – Parameter in the jitter methods to eliminate eliminate matrices with diagonal elements smaller than this when checking if a matrix is positive definite.

  • diag_weight – Multiple of mean of diagonal entries to initialize the jitter.

  • increase_jitter – Each iteration multiply by jitter by this amount

Returns

The method either fails to make the matrix positive definite within the maximum number of iterations and outputs an error or succeeds and returns the lower triangular Cholesky factor L of shape (batch_size, num_data_points, num_data_points)

Return type

Optional[Tensor]

gluonts.mx.linalg_util.jitter_cholesky_eig(F, matrix: typing.Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], num_data_points: typing.Optional[int] = None, float_type: typing.Type = <class 'numpy.float64'>, diag_weight: float = 1e-06) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

This function applies the jitter method using the eigenvalue decomposition. The eigenvalues are bound below by the jitter, which is proportional to the mean of the diagonal elements.

Parameters
  • F – A module that can either refer to the Symbol API or the NDArray API in MXNet.

  • matrix – Matrix of shape (batch_size, num_data_points, num_data_points).

  • num_data_points – Number of rows in the kernel_matrix.

  • float_type – Determines whether to use single or double precision.

Returns

Returns the approximate lower triangular Cholesky factor L of shape (batch_size, num_data_points, num_data_points)

Return type

Tensor

gluonts.mx.linalg_util.lower_triangular_ones(F, d: int, offset: int = 0) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

Constructs a lower triangular matrix consisting of ones.

Parameters
  • F

  • d – Dimension of the output tensor, whose shape will be (d, d).

  • offset – Indicates how many diagonals to set to zero in the lower triangular part. By default, offset = 0, so the output matrix contains also the main diagonal. For example, if offset = 1 then the output will be a strictly lower triangular matrix (i.e. the main diagonal will be zero).

Returns

Tensor of shape (d, d) consisting of ones in the strictly lower triangular part, and zeros elsewhere.

Return type

Tensor