Skip to content

mod_nada_opt

Lines: 91 | Visibility: private

Definition of the nada optimization algorithm.

In nada, all weights are not updated at all. author: Richard Springborn

Dependencies

Uses

module~~mod_nada_opt~~UsesGraph module~mod_nada_opt mod_nada_opt module~mod_abstractoptimizer mod_abstractoptimizer module~mod_nada_opt->module~mod_abstractoptimizer module~mod_decorations mod_decorations module~mod_nada_opt->module~mod_decorations module~mod_io mod_io module~mod_nada_opt->module~mod_io module~mod_learning_rate mod_learning_rate module~mod_nada_opt->module~mod_learning_rate module~mod_loss_mse mod_loss_mse module~mod_nada_opt->module~mod_loss_mse module~mod_lossfunctions mod_lossfunctions module~mod_nada_opt->module~mod_lossfunctions module~mod_precision mod_precision module~mod_nada_opt->module~mod_precision module~mod_throw mod_throw module~mod_nada_opt->module~mod_throw module~mod_abstractoptimizer->module~mod_io module~mod_abstractoptimizer->module~mod_precision 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_settings mod_settings module~mod_abstractoptimizer->module~mod_settings module~mod_decorations->module~mod_io module~mod_decorations->module~mod_precision module~mod_decorations->module~mod_throw module~mod_io->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_learning_rate->module~mod_abstractoptimizer module~mod_learning_rate->module~mod_precision module~mod_loss_mse->module~mod_precision module~mod_loss_mse->module~mod_loss_abstract module~mod_lossfunctions->module~mod_io module~mod_lossfunctions->module~mod_loss_mse module~mod_lossfunctions->module~mod_throw module~mod_lossfunctions->module~mod_loss_abstract module~mod_loss_mae mod_loss_mae 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 iso_c_binding iso_c_binding module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env module~mod_throw->module~mod_io module~mod_throw->module~mod_precision module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_throw->module~mod_mpi module~mod_sort mod_sort module~mod_throw->module~mod_sort 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_loss_abstract->module~mod_precision module~mod_loss_abstract->module~mod_mpi module~mod_loss_mae->module~mod_precision module~mod_loss_mae->module~mod_loss_abstract module~mod_loss_mse_torch->module~mod_precision module~mod_loss_mse_torch->module~mod_loss_abstract module~mod_loss_rmse->module~mod_precision module~mod_loss_rmse->module~mod_loss_abstract 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_precision module~mod_nan_check->module~mod_throw ieee_arithmetic ieee_arithmetic module~mod_nan_check->ieee_arithmetic module~mod_settings->module~mod_io module~mod_settings->module~mod_precision module~mod_settings->module~mod_throw 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->module~mod_precision module~mod_constants->iso_c_binding module~mod_cpu_vendor->iso_c_binding module~mod_periodic_table->module~mod_io module~mod_periodic_table->module~mod_precision module~mod_periodic_table->module~mod_throw module~mod_periodic_table->module~mod_constants module~mod_array_helpers mod_array_helpers module~mod_periodic_table->module~mod_array_helpers module~mod_array_helpers->module~mod_precision module~mod_array_helpers->module~mod_throw

Used By

module~~mod_nada_opt~~UsedByGraph module~mod_nada_opt mod_nada_opt module~mod_optimizers mod_optimizers module~mod_optimizers->module~mod_nada_opt 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

Derived Types Summary

Name Description
NadaOpt Nada Optimizer (not changing any weights).

Procedures Summary

Name Type Description
constructor_ptr_from_hyperparams_nada_opt Function Initialize a new NadaOpt optimizer object.
constructor_ptr_from_file_nada_opt Function
print_nada_opt Subroutine Display information about the NadaOpt object.
report_nada_opt Subroutine Displays current status of the NadaOpt object for verbosity >= 2.
initialize_defaults_nada_opt Subroutine
set_hyperparameter_nada_opt Subroutine Update the value of the given hyperparameter.
validate_hyperparameters_nada_opt Subroutine
update_nada_opt Subroutine This Optimizer doesnt update anything.

Derived Types Details

type NadaOpt

Nada Optimizer (not changing any weights).

Components

Type-Bound Procedures

Name Attributes Binding
weight_decay public ⇒ weight_decay
initialize_from_file public ⇒ initialize_from_file_abstract_optimizer
step public ⇒ step_abstractoptimizer_mpi
set_num_parameters public ⇒ set_num_parameters_abstractoptimizer
update_hyperparameters public ⇒ update_hyperparameters_abstractoptimizer
parameter_weight_decay public ⇒ parameter_weight_decay
print public ⇒ print_nada_opt
report public ⇒ report_nada_opt
update public ⇒ update_nada_opt
initialize_defaults public ⇒ initialize_defaults_nada_opt
validate public ⇒ validate_hyperparameters_nada_opt
set_hyperparameter public ⇒ set_hyperparameter_nada_opt

Inherits

type~~nadaopt~~InheritsGraph type~nadaopt NadaOpt type~abstractoptimizerlearningrate AbstractOptimizerLearningRate type~nadaopt->type~abstractoptimizerlearningrate type~abstractoptimizer AbstractOptimizer type~abstractoptimizerlearningrate->type~abstractoptimizer type~abstractlossfunction AbstractLossFunction type~abstractoptimizer->type~abstractlossfunction loss_function

Interface Details

interface NadaOpt


Procedure Details

function constructor_ptr_from_hyperparams_nada_opt

function constructor_ptr_from_hyperparams_nada_opt( &
    loss_function_type, &
    icomm &
)

Initialize a new NadaOpt optimizer object.

Arguments

  • loss_function_type : integer [in]
  • icomm : integer [in]– Index of the committee member to which this optimizer is assigned to.

Called By

proc~~constructor_ptr_from_hyperparams_nada_opt~~CalledByGraph proc~constructor_ptr_from_hyperparams_nada_opt mod_nada_opt::constructor_ptr_from_hyperparams_nada_opt interface~nadaopt mod_nada_opt::NadaOpt interface~nadaopt->proc~constructor_ptr_from_hyperparams_nada_opt

function constructor_ptr_from_file_nada_opt

function constructor_ptr_from_file_nada_opt( &
    line, &
    icomm &
)

Arguments

  • line : character [in]
  • icomm : integer [in]– Committee index to which this ´GradientDescent` object is assigned to.

Called By

proc~~constructor_ptr_from_file_nada_opt~~CalledByGraph proc~constructor_ptr_from_file_nada_opt mod_nada_opt::constructor_ptr_from_file_nada_opt interface~nadaopt mod_nada_opt::NadaOpt interface~nadaopt->proc~constructor_ptr_from_file_nada_opt

subroutine print_nada_opt

subroutine print_nada_opt( &
    self &
)

Display information about the NadaOpt object.

Arguments


subroutine report_nada_opt

subroutine report_nada_opt( &
    self, &
    epoch &
)

Displays current status of the NadaOpt object for verbosity >= 2.

Arguments

  • self : class(NadaOpt) [in]
  • epoch : integer [in]

subroutine initialize_defaults_nada_opt

subroutine initialize_defaults_nada_opt( &
    self &
)

Arguments

Called By

proc~~initialize_defaults_nada_opt~~CalledByGraph proc~initialize_defaults_nada_opt mod_nada_opt::NadaOpt%initialize_defaults_nada_opt proc~constructor_ptr_from_hyperparams_nada_opt mod_nada_opt::constructor_ptr_from_hyperparams_nada_opt proc~constructor_ptr_from_hyperparams_nada_opt->proc~initialize_defaults_nada_opt interface~nadaopt mod_nada_opt::NadaOpt interface~nadaopt->proc~constructor_ptr_from_hyperparams_nada_opt

subroutine set_hyperparameter_nada_opt

subroutine set_hyperparameter_nada_opt( &
    self, &
    name, &
    value_str &
)

Update the value of the given hyperparameter.

Arguments

  • self : class(NadaOpt) [inout]
  • name : character [in]
  • value_str : character [in]

subroutine validate_hyperparameters_nada_opt

subroutine validate_hyperparameters_nada_opt( &
    self &
)

Arguments

Called By

proc~~validate_hyperparameters_nada_opt~~CalledByGraph proc~validate_hyperparameters_nada_opt mod_nada_opt::NadaOpt%validate_hyperparameters_nada_opt proc~constructor_ptr_from_hyperparams_nada_opt mod_nada_opt::constructor_ptr_from_hyperparams_nada_opt proc~constructor_ptr_from_hyperparams_nada_opt->proc~validate_hyperparameters_nada_opt interface~nadaopt mod_nada_opt::NadaOpt interface~nadaopt->proc~constructor_ptr_from_hyperparams_nada_opt

subroutine update_nada_opt

subroutine update_nada_opt( &
    self, &
    parameters, &
    gradients, &
    losses, &
    num_streams &
)

This Optimizer doesnt update anything.

Arguments

  • self : class(NadaOpt) [inout]
  • parameters : real(DP) (dim: (self%num_parameters)) [inout]– A list of all free parameters in the `Model`.
  • gradients : real(DP) (dim: (self%num_parameters,num_streams)) [inout]– Gradients of the `Model` output wrt its parameters.
  • losses : real(DP) (dim: (num_streams)) [in]– Loss of the `Model` output (prediction - target).
  • num_streams : integer [in]– The number of streams participating in the update.