Skip to content

mod_optimizers

Lines: 168 | Visibility: public

Public Optimizer API for RuNNer.

This module serves as a centralized access point for all optimizer implementations available within the RuNNer neural network training framework. By importing mod_optimizers, users gain access to the full suite of optimizers without needing to import each optimizer module individually. Available optimizers include gradient descent, stochastic gradient descent (SGD), Adam, and variants of the Kalman filter.

The API is designed to facilitate ease of use and rapid development of training routines, allowing users to efficiently configure, instantiate, and execute optimizers as part of their supervised learning workflows within an MPI-parallel context.

Each optimizer can be configured through a unified interface handling both default and custom optimizer configurations, streamlining integration into the broader RuNNer ecosystem.

This module summarizes all optimizers available in RuNNer. Instead of importing the different optimizers from their individual modules, users can import them all from this module instead. author: Alexander Knoll

Dependencies

Uses

module~~mod_optimizers~~UsesGraph module~mod_optimizers mod_optimizers module~mod_abstractoptimizer mod_abstractoptimizer module~mod_optimizers->module~mod_abstractoptimizer module~mod_adam mod_adam module~mod_optimizers->module~mod_adam module~mod_gradient_descent mod_gradient_descent module~mod_optimizers->module~mod_gradient_descent module~mod_io mod_io module~mod_optimizers->module~mod_io module~mod_kalman_filter mod_kalman_filter module~mod_optimizers->module~mod_kalman_filter module~mod_kalman_filter_std mod_kalman_filter_std module~mod_optimizers->module~mod_kalman_filter_std module~mod_nada_opt mod_nada_opt module~mod_optimizers->module~mod_nada_opt module~mod_stochastic_gradient_descent mod_stochastic_gradient_descent module~mod_optimizers->module~mod_stochastic_gradient_descent module~mod_throw mod_throw module~mod_optimizers->module~mod_throw module~mod_abstractoptimizer->module~mod_io module~mod_abstractoptimizer->module~mod_throw module~mod_global_warning mod_global_warning module~mod_abstractoptimizer->module~mod_global_warning module~mod_gradient_clipping mod_gradient_clipping module~mod_abstractoptimizer->module~mod_gradient_clipping module~mod_loss_abstract mod_loss_abstract module~mod_abstractoptimizer->module~mod_loss_abstract module~mod_mpi mod_mpi module~mod_abstractoptimizer->module~mod_mpi module~mod_nan_check mod_nan_check module~mod_abstractoptimizer->module~mod_nan_check module~mod_precision mod_precision module~mod_abstractoptimizer->module~mod_precision module~mod_settings mod_settings module~mod_abstractoptimizer->module~mod_settings module~mod_adam->module~mod_abstractoptimizer module~mod_adam->module~mod_io module~mod_adam->module~mod_throw module~mod_decorations mod_decorations module~mod_adam->module~mod_decorations module~mod_learning_rate mod_learning_rate module~mod_adam->module~mod_learning_rate module~mod_loss_mse mod_loss_mse module~mod_adam->module~mod_loss_mse module~mod_lossfunctions mod_lossfunctions module~mod_adam->module~mod_lossfunctions module~mod_adam->module~mod_precision module~mod_gradient_descent->module~mod_abstractoptimizer module~mod_gradient_descent->module~mod_io module~mod_gradient_descent->module~mod_throw module~mod_gradient_descent->module~mod_decorations module~mod_gradient_descent->module~mod_learning_rate module~mod_gradient_descent->module~mod_loss_mse module~mod_gradient_descent->module~mod_lossfunctions module~mod_gradient_descent->module~mod_precision iso_fortran_env iso_fortran_env module~mod_io->iso_fortran_env module~mod_optional_args mod_optional_args module~mod_io->module~mod_optional_args module~mod_io->module~mod_precision module~mod_kalman_filter->module~mod_abstractoptimizer module~mod_kalman_filter->module~mod_io module~mod_kalman_filter->module~mod_throw module~mod_abstract_kalman_filter mod_abstract_kalman_filter module~mod_kalman_filter->module~mod_abstract_kalman_filter module~mod_kalman_filter->module~mod_mpi module~mod_kalman_filter->module~mod_precision module~mod_kalman_filter_std->module~mod_abstractoptimizer module~mod_kalman_filter_std->module~mod_io module~mod_kalman_filter_std->module~mod_throw module~mod_kalman_filter_std->module~mod_abstract_kalman_filter module~mod_kalman_filter_std->module~mod_mpi module~mod_parse_logical_keyword mod_parse_logical_keyword module~mod_kalman_filter_std->module~mod_parse_logical_keyword module~mod_kalman_filter_std->module~mod_precision module~mod_nada_opt->module~mod_abstractoptimizer module~mod_nada_opt->module~mod_io module~mod_nada_opt->module~mod_throw module~mod_nada_opt->module~mod_decorations module~mod_nada_opt->module~mod_learning_rate module~mod_nada_opt->module~mod_loss_mse module~mod_nada_opt->module~mod_lossfunctions module~mod_nada_opt->module~mod_precision module~mod_stochastic_gradient_descent->module~mod_abstractoptimizer module~mod_stochastic_gradient_descent->module~mod_io module~mod_stochastic_gradient_descent->module~mod_throw module~mod_stochastic_gradient_descent->module~mod_decorations module~mod_stochastic_gradient_descent->module~mod_learning_rate module~mod_stochastic_gradient_descent->module~mod_loss_mse module~mod_stochastic_gradient_descent->module~mod_lossfunctions module~mod_stochastic_gradient_descent->module~mod_precision module~mod_throw->module~mod_io iso_c_binding iso_c_binding module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_throw->module~mod_mpi module~mod_throw->module~mod_precision module~mod_sort mod_sort module~mod_throw->module~mod_sort module~mod_abstract_kalman_filter->module~mod_abstractoptimizer module~mod_abstract_kalman_filter->module~mod_io module~mod_abstract_kalman_filter->module~mod_throw module~mod_abstract_kalman_filter->module~mod_decorations module~mod_abstract_kalman_filter->module~mod_lossfunctions module~mod_abstract_kalman_filter->module~mod_mpi module~mod_abstract_kalman_filter->module~mod_parse_logical_keyword module~mod_abstract_kalman_filter->module~mod_precision module~mod_data_container mod_data_container module~mod_abstract_kalman_filter->module~mod_data_container module~mod_linalg mod_linalg module~mod_abstract_kalman_filter->module~mod_linalg module~mod_loss_mae mod_loss_mae module~mod_abstract_kalman_filter->module~mod_loss_mae module~mod_path mod_path module~mod_abstract_kalman_filter->module~mod_path module~mod_decorations->module~mod_io module~mod_decorations->module~mod_throw module~mod_decorations->module~mod_precision module~mod_global_warning->module~mod_io module~mod_global_warning->module~mod_throw module~mod_abstract_warning mod_abstract_warning module~mod_global_warning->module~mod_abstract_warning module~mod_gradient_clipping->module~mod_precision module~mod_gradient_clipping->module~mod_settings module~mod_learning_rate->module~mod_abstractoptimizer module~mod_learning_rate->module~mod_precision module~mod_loss_abstract->module~mod_mpi module~mod_loss_abstract->module~mod_precision module~mod_loss_mse->module~mod_loss_abstract module~mod_loss_mse->module~mod_precision module~mod_lossfunctions->module~mod_io module~mod_lossfunctions->module~mod_throw module~mod_lossfunctions->module~mod_loss_abstract module~mod_lossfunctions->module~mod_loss_mse module~mod_lossfunctions->module~mod_loss_mae module~mod_loss_mse_torch mod_loss_mse_torch module~mod_lossfunctions->module~mod_loss_mse_torch module~mod_loss_rmse mod_loss_rmse module~mod_lossfunctions->module~mod_loss_rmse module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_nan_check->module~mod_io module~mod_nan_check->module~mod_throw module~mod_nan_check->module~mod_precision ieee_arithmetic ieee_arithmetic module~mod_nan_check->ieee_arithmetic module~mod_parse_logical_keyword->module~mod_io module~mod_parse_logical_keyword->module~mod_throw module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env module~mod_settings->module~mod_io module~mod_settings->module~mod_throw module~mod_settings->module~mod_precision module~mod_constants mod_constants module~mod_settings->module~mod_constants module~mod_cpu_vendor mod_cpu_vendor module~mod_settings->module~mod_cpu_vendor module~mod_periodic_table mod_periodic_table module~mod_settings->module~mod_periodic_table module~mod_sort->module~mod_precision module~mod_constants->iso_c_binding module~mod_constants->module~mod_precision module~mod_cpu_vendor->iso_c_binding module~mod_data_container->module~mod_io module~mod_data_container->module~mod_throw module~mod_data_container->module~mod_precision module~mod_linalg->module~mod_throw module~mod_linalg->module~mod_precision module~mod_linalg->module~mod_settings module~cublas_wrapper cublas_wrapper module~mod_linalg->module~cublas_wrapper module~mod_loss_mae->module~mod_loss_abstract module~mod_loss_mae->module~mod_precision module~mod_loss_mse_torch->module~mod_loss_abstract module~mod_loss_mse_torch->module~mod_precision module~mod_loss_rmse->module~mod_loss_abstract module~mod_loss_rmse->module~mod_precision module~mod_path->module~mod_io module~mod_periodic_table->module~mod_io module~mod_periodic_table->module~mod_throw module~mod_periodic_table->module~mod_precision module~mod_periodic_table->module~mod_constants module~mod_array_helpers mod_array_helpers module~mod_periodic_table->module~mod_array_helpers module~cublas_wrapper->iso_c_binding module~cublas_wrapper->module~mod_settings module~mod_array_helpers->module~mod_throw module~mod_array_helpers->module~mod_precision

Used By

module~~mod_optimizers~~UsedByGraph module~mod_optimizers mod_optimizers module~mod_initialize mod_initialize module~mod_initialize->module~mod_optimizers module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_initialize module~mod_write_outfiles mod_write_outfiles module~mod_predict_mode->module~mod_write_outfiles module~mod_runner_interface_bindings mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_initialize module~mod_train_energy_multiple_structures mod_train_energy_multiple_structures module~mod_train_energy_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures mod_train_forces_multiple_structures module~mod_train_forces_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures->module~mod_train_energy_multiple_structures module~mod_train_loop_4g_charges mod_train_loop_4g_charges module~mod_train_loop_4g_charges->module~mod_initialize module~mod_cost_calculator mod_cost_calculator module~mod_train_loop_4g_charges->module~mod_cost_calculator module~mod_output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges module~mod_train_loop_4g_charges->module~mod_output_files_and_cost_4g_charges module~mod_train_loop_atomic_property mod_train_loop_atomic_property module~mod_train_loop_atomic_property->module~mod_initialize module~mod_train_loop_atomic_property->module~mod_cost_calculator module~mod_output_files_and_cost mod_output_files_and_cost module~mod_train_loop_atomic_property->module~mod_output_files_and_cost module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_initialize module~mod_train_loop_short_range->module~mod_train_energy_multiple_structures module~mod_train_loop_short_range->module~mod_train_forces_multiple_structures module~mod_train_loop_short_range->module~mod_cost_calculator module~mod_train_loop_short_range->module~mod_output_files_and_cost module~mod_output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range module~mod_train_loop_short_range->module~mod_output_files_and_cost_4g_short_range module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_initialize module~mod_train_mode->module~mod_train_loop_4g_charges module~mod_train_mode->module~mod_train_loop_atomic_property module~mod_train_mode->module~mod_train_loop_short_range module~mod_write_outfiles_training mod_write_outfiles_training module~mod_train_mode->module~mod_write_outfiles_training module~mod_write_outfiles->module~mod_initialize program~runner RuNNer program~runner->module~mod_initialize program~runner->module~mod_predict_mode program~runner->module~mod_train_mode module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_write_outfiles_training->module~mod_write_outfiles module~mod_cost_calculator->module~mod_write_outfiles_training module~mod_output_files_and_cost->module~mod_cost_calculator module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator

Module Variables

  • TYPE_GRADIENT_DESCENT : integer
  • TYPE_STOCHASTIC_GRADIENT_DESCENT : integer
  • TYPE_ADAM : integer
  • TYPE_KALMAN_FILTER : integer
  • TYPE_KALMAN_STD_FILTER : integer

Procedures Summary

Name Type Description
count_optimizers Function Count how many optimizers are specified in the given lines.
parse_optimizers Subroutine Parse optimizers in input format: ```input.nn default_optimizer kalman nue=0.99 lambda=0.9987...

Procedure Details

function count_optimizers

function count_optimizers( &
    lines, &
    committee_size &
)

Count how many optimizers are specified in the given lines.

Arguments

  • lines : character (dim: (:)) [in]
  • committee_size : integer [in]

Called By

proc~~count_optimizers~~CalledByGraph proc~count_optimizers mod_optimizers::count_optimizers proc~parse_optimizers mod_optimizers::parse_optimizers proc~parse_optimizers->proc~count_optimizers proc~initialize_optimizers_and_loss_functions_from_inputnn mod_initialize::initialize_optimizers_and_loss_functions_from_inputnn proc~initialize_optimizers_and_loss_functions_from_inputnn->proc~parse_optimizers proc~initialize_from_inputnn mod_initialize::initialize_from_inputnn proc~initialize_from_inputnn->proc~initialize_optimizers_and_loss_functions_from_inputnn program~runner RuNNer program~runner->proc~initialize_from_inputnn

subroutine parse_optimizers

subroutine parse_optimizers( &
    lines, &
    committee_size, &
    optimizers &
)

Parse optimizers in input format:

default_optimizer kalman nue=0.99 lambda=0.9987 p_initial=1.0 loss_function=mae
# or
optimizer 1 kalman nue=0.99 lambda=0.9987 p_initial=1.0 loss_function=mae
optimizer 2 kalman nue=0.99 lambda=0.9987 p_initial=1.0 loss_function=mae

Arguments

  • lines : character (dim: (:)) [in]
  • committee_size : integer [in]
  • optimizers : type(OptimizerPtr) (dim: (:,:)) [out]

Called By

proc~~parse_optimizers~~CalledByGraph proc~parse_optimizers mod_optimizers::parse_optimizers proc~initialize_optimizers_and_loss_functions_from_inputnn mod_initialize::initialize_optimizers_and_loss_functions_from_inputnn proc~initialize_optimizers_and_loss_functions_from_inputnn->proc~parse_optimizers proc~initialize_from_inputnn mod_initialize::initialize_from_inputnn proc~initialize_from_inputnn->proc~initialize_optimizers_and_loss_functions_from_inputnn program~runner RuNNer program~runner->proc~initialize_from_inputnn