brainpy.analysis.highdim.SlowPointFinder
brainpy.analysis.highdim.SlowPointFinder#
- class brainpy.analysis.highdim.SlowPointFinder(f_cell, f_type='continuous', f_loss_batch=None, verbose=True)[source]#
Find fixed/slow points by numerical optimization.
This class can help you:
optimize to find the closest fixed points / slow points
exclude any fixed points whose fixed point loss is above threshold
exclude any non-unique fixed points according to a tolerance
exclude any far-away “outlier” fixed points
This model implementation is inspired by https://github.com/google-research/computation-thru-dynamics.
- Parameters
f_cell (callable, function) – The function to compute the recurrent units.
f_type (str) –
The system’s type: continuous system or discrete system.
’continuous’: continuous derivative function, denotes this is a continuous system, or
’discrete’: discrete update function, denotes this is a discrete system.
f_loss_batch (callable, function) – The function to compute the loss.
verbose (bool) – Whether print the optimization progress.
Methods
__init__
(f_cell[, f_type, f_loss_batch, verbose])compute_jacobians
(points)Compute the jacobian matrices at the points.
decompose_eigenvalues
(matrices[, sort_by, ...])Compute the eigenvalues of the matrices.
exclude_outliers
([tolerance])Exclude points whose closest neighbor is further than threshold.
filter_loss
([tolerance])Filter fixed points whose speed larger than a given tolerance.
find_fps_with_gd_method
(candidates[, ...])Optimize fixed points with gradient descent methods.
find_fps_with_opt_solver
(candidates[, ...])Optimize fixed points with nonlinear optimization solvers.
keep_unique
([tolerance])Filter unique fixed points by choosing a representative within tolerance.
Attributes
fixed_points
The final fixed points found.
losses
Losses of fixed points.
selected_ids
The selected ids of candidate points.