Skip to content

Releases: flohey/turbESN

Bug fixes & small additions

04 Mar 14:59
Compare
Choose a tag to compare
Pre-release

Changes:

New functionalities

  • added method that computes Kullback-Leibler-Divergence
  • ESN object can now be initialized by yaml config

New parallelization mode & generic loss computation

15 Dec 09:37
Compare
Choose a tag to compare

Changes:

Renaming

  • renamed launch_process_RunturbESN to parallelize_seeds in study.py
  • renamed Callback to callback_seeds in study.py
  • renamed start_thread_RunturbESN to thread_run_turbESN in study.py
  • renamed nstudy to nsettings in util.py, core.py & study.py
  • renamed istudy to isetting in util.py, core.py & study.py
  • renamed CreateStudyConfigArray to create_study_config_list in util.py
  • renamed SaveStudy, ReadStudy, ReadMSE, ReadESNOutput to snake case equivalents
  • renamed ComputeWassersteinDistance to compute_wasserstein_distance in util.py
  • renamed ComputeMSE to compute_mse in util.py
  • renamed ComputeR2 to compute_r2 in util.py
  • renamed RunturbESN to run_turbESN in util.py
  • renamed setDevice to set_device in core.py
  • renamed toTorch to to_torch in core.py
  • renamed _MSE_DEFAULT to _LOSS_DEFAULT in _modes.py

New functionalities

  • added functionality to parallelize grid & random search setting over subprocesses (before: only random seeds were distributed among processors)

    • added parallelize_settings & callback_setting methods in study.py
    • choose between parallelization in run_gs.py via the parameter use_parallel_setting
    • this speeds up studies, where the no. settings is larger than the no. random seeds
  • changed computation of mse in run_turbESN to more generic way: user uses dict esn.loss_func to specify which loss functions should be computed, results are returned in loss_dict

    • added None init. for esn.loss_func
    • adapted save_study, read_study in util.py
    • adapted read in core.py
    • renamed read_mse to read_loss in util.py
    • adapted read_loss in util.py
    • adapted thread_run_turbESN, callback_settings, callback_seeds in study.py
    • adapted forward_validate_auto_ESN in util.py (not tested)

Misc.

  • fixed minor issues in run_gs.py
  • fixed bug in plot_esn_predictions method in util.py
  • added default values to style_dict in plot_esn_predictions & plot_activation_arg_distribution in util.py
  • fixed error in read method in core.py, where self.xrows was not adapted correctly
    • added member variable u_pre_val to ESN object in core.py
  • added option to set u_pre_val via SetValidationData in core.py
  • use self.u_pre_val (if not None) in run_turbESN to initialize reservoir state before validation phase (make it more comparable to test phase, which is also preceded by state from GT data)
  • self.val_init_input is now taken from self.u_pre_val (if val_init_input is None and u_pre_val is not None)
  • removed iseed argument in read_loss, read_study, read_esn_output in util.py
  • adpated basic_tour.ipynb notebook to new turbESN

ESN hyperparameter information & renaming

04 Nov 15:29
Compare
Choose a tag to compare

Changes:

Renaming

  • changed variable names (stay more consistent in naming convention):

    • pred_init_input -> test_init_input (core.py)
    • x_fit -> x_train (util.py)
    • x_pred -> x_test (util.py)
  • changed name user_study_w_config.py to run_gs.py

  • changed name CreateHDF5Groups to create_hdf5_groups in util.py

  • changed name InitRandomStudyOrder to init_random_search in util.py

  • renamed doRandomSearch parameter to do_random_search in esn_config.yaml

  • renamed verifyReservoirConvergence to verify_echo_state_property in core.py

  • renamed activation_arg_dist method to compute_activation_arg_distribution in core.py

  • renamed study_parameters to study_tuple in several methods in util.py

New functionalities

  • added new fit option: pseudo-inverse
  • added get_size method in core.py
  • added plot_activation_arg_distribution & plot_esn_predictions methods to util.py
  • added get_HP_info method in core.py
  • added undo_minmax_scaling method in util.py
  • added ReadESNOutput, ReadMSE to util.py (separated the ReadStudy method)

Refinements

  • refined run_gs.py
  • refined esn_config.yaml
  • adapted read method in core.py to read all data from hdf5
  • adapted compute_activation_arg_distribution method to feedback argument + added option to specify ESN prediction phase
  • updated save method in core.py to work with hyperparameters.json
  • updated init_random_search method in util.py to work with hyperparameters.json
  • changed launch_thread_RunturbESN, launch_process_RunturbESN in study.py to assess whethe weight matrices Wres,Win,Wfb must be recomputed or can be computed once per random seed

Backend

  • added _modes.py to root dir (.py files read constants & mode values from here now)
  • use importlib.resources for finding path to hyperparameters.json
  • added hyperparameters.json to root dir

Misc.

  • fixed bug, that provided prediction input would not be used in predidct method in util.py
  • added init_grid_search to util.py
  • fixed bug in predict method in core.py
  • added verify_echo_state_property to run_gs.py
  • added fit_method & mode to hyperparameters.json
  • fixed bug in read in core.py
  • changed logging state in verify_echo_state_property method from error to warn in core.py

Feedback Weights & minor fixes

22 Aug 13:53
Compare
Choose a tag to compare
Pre-release
  • added feedback weights
  • removed small world network utility
  • minor bug fixes
  • leaking rate can no safely be specified as array (for each neuron)

Cross Validation

01 Apr 10:46
b2eaa1a
Compare
Choose a tag to compare
Cross Validation Pre-release
Pre-release

Changes

  • changed identity matrix in fitting procedure to not include bias terms
  • added option to run ESN w. third (validation) dataset (util.py & core.py)
  • added function which checks user input data (prev. in RunturbESN)
  • fixed problem in assert in RunturbESN in util.py
  • adapted SaveStudy & ReadStudy to save mse_val & y_pred_val in util.py
  • changed no. return variables in RunturbESN: now returns mse_train, mse_test, mse_val, y_pred_test, y_val
  • added k fold forward walk validation procedure in util.py
  • renamed LaunchThreads to launch_process_RunturbESN in study.py
  • renamed LaunchSingleThread to launch_thread_RunturbESN in study.py
  • adapted launch_thread_RunturbESN & Callback in study.py
  • added launch_process_forward_validate_turbESN in study.py
  • added launch_thread_forward_validate_turbESN in study.py
  • added validationLength as ESN object value in core.py
  • added validationLength to L63Reservoir in core.py
    added validationLength to ml4ablReservoir in core.py
  • added cross_validation.py to turbESN
  • added k fold forward walk validation data preparation to cross_validation.py
  • added CrossValidation.save in cross_validation.py
  • added option for single esn_id in CreateHDF5Groups in util.py
  • adapted in ESN.save for single esn_id in core.py
  • changed k fold forward walk validation return value to torch.tensors in util.py

minor changes & additional functions

28 Feb 18:43
8e8ea22
Compare
Choose a tag to compare
Pre-release
  • renamed some internal ESN variables
  • added option of nonlinearity to training
  • added Strogatz-Watts reservoir

first stable release

06 Jan 19:02
8901f1f
Compare
Choose a tag to compare
first stable release Pre-release
Pre-release
v0.0.1.5

Update README.md