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