hyperparameters_t Derived Type

type, public :: hyperparameters_t


Inherited by

type~~hyperparameters_t~~InheritedByGraph type~hyperparameters_t hyperparameters_t type~training_configuration_t training_configuration_t type~training_configuration_t->type~hyperparameters_t hyperparameters_

Components

Type Visibility Attributes Name Initial
integer, public, kind :: k = default_real
character(len=:), public, allocatable :: optimizer_
real(kind=k), private :: learning_rate_ = real(1.5, k)
integer, private :: mini_batches_ = 10

Constructor

public interface hyperparameters_t

  • private pure module function default_real_from_components(mini_batches, learning_rate, optimizer) result(hyperparameters)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: mini_batches
    real, intent(in) :: learning_rate
    character(len=*), intent(in) :: optimizer

    Return Value type(hyperparameters_t)

  • private pure module function default_real_from_json(lines) result(hyperparameters)

    Arguments

    Type IntentOptional Attributes Name
    type(string_t), intent(in) :: lines(:)

    Return Value type(hyperparameters_t)

  • private pure module function double_precision_from_components(mini_batches, learning_rate, optimizer) result(hyperparameters)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: mini_batches
    double precision, intent(in) :: learning_rate
    character(len=*), intent(in) :: optimizer

    Return Value type(hyperparameters_t(double_precision))

  • private pure module function double_precision_from_json(lines) result(hyperparameters)

    Arguments

    Type IntentOptional Attributes Name
    type(double_precision_string_t), intent(in) :: lines(:)

    Return Value type(hyperparameters_t(double_precision))


Type-Bound Procedures

generic, public :: learning_rate => default_real_learning_rate, double_precision_learning_rate

generic, public :: mini_batches => default_real_mini_batches, double_precision_mini_batches

generic, public :: operator(==) => default_real_equals, double_precision_equals

generic, public :: optimizer_name => default_real_optimizer_name, double_precision_optimizer_name

generic, public :: to_json => default_real_to_json, double_precision_to_json

procedure, private :: default_real_equals

  • interface

    private elemental module function default_real_equals(lhs, rhs) result(lhs_equals_rhs)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t), intent(in) :: lhs
    class(hyperparameters_t), intent(in) :: rhs

    Return Value logical

procedure, private :: default_real_learning_rate

  • interface

    private elemental module function default_real_learning_rate(self) result(rate)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t), intent(in) :: self

    Return Value real

procedure, private :: default_real_mini_batches

  • interface

    private elemental module function default_real_mini_batches(self) result(num_mini_batches)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t), intent(in) :: self

    Return Value integer

procedure, private :: default_real_optimizer_name

  • interface

    private elemental module function default_real_optimizer_name(self) result(identifier)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t), intent(in) :: self

    Return Value type(string_t)

procedure, private :: default_real_to_json

  • interface

    private pure module function default_real_to_json(self) result(lines)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t), intent(in) :: self

    Return Value type(string_t), allocatable, (:)

procedure, private :: double_precision_equals

  • interface

    private elemental module function double_precision_equals(lhs, rhs) result(lhs_equals_rhs)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t(double_precision)), intent(in) :: lhs
    class(hyperparameters_t(double_precision)), intent(in) :: rhs

    Return Value logical

procedure, private :: double_precision_learning_rate

  • interface

    private elemental module function double_precision_learning_rate(self) result(rate)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t(double_precision)), intent(in) :: self

    Return Value double precision

procedure, private :: double_precision_mini_batches

  • interface

    private elemental module function double_precision_mini_batches(self) result(num_mini_batches)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t(double_precision)), intent(in) :: self

    Return Value integer

procedure, private :: double_precision_optimizer_name

  • interface

    private elemental module function double_precision_optimizer_name(self) result(identifier)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t(double_precision)), intent(in) :: self

    Return Value type(string_t)

procedure, private :: double_precision_to_json

  • interface

    private pure module function double_precision_to_json(self) result(lines)

    Arguments

    Type IntentOptional Attributes Name
    class(hyperparameters_t(double_precision)), intent(in) :: self

    Return Value type(string_t), allocatable, (:)