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
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.