trainable_network_t Derived Type

type, public, extends(neural_network_t) :: trainable_network_t


Inherits

type~~trainable_network_t~~InheritsGraph type~trainable_network_t trainable_network_t type~neural_network_t neural_network_t type~trainable_network_t->type~neural_network_t type~workspace_t workspace_t type~trainable_network_t->type~workspace_t workspace_ type~activation_t activation_t type~neural_network_t->type~activation_t activation_ type~metadata_t metadata_t type~neural_network_t->type~metadata_t metadata_ type~tensor_map_t tensor_map_t type~neural_network_t->type~tensor_map_t input_map_, output_map_ string_t string_t type~metadata_t->string_t modelName_, modelAuthor_, compilationDate_, activationFunction_, usingSkipConnections_

Components

Type Visibility Attributes Name Initial
integer, public, kind :: k = default_real
integer, public, kind :: m = default_real
type(workspace_t), private :: workspace_

Constructor

public interface trainable_network_t

  • private pure module function default_real_network(neural_network) result(trainable_network)

    Arguments

    Type IntentOptional Attributes Name
    type(neural_network_t), intent(in) :: neural_network

    Return Value type(trainable_network_t)

  • private module function perturbed_identity_network(training_configuration, perturbation_magnitude, metadata, input_map, output_map) result(trainable_network)

    Arguments

    Type IntentOptional Attributes Name
    type(training_configuration_t), intent(in) :: training_configuration
    real, intent(in) :: perturbation_magnitude
    type(string_t), intent(in) :: metadata(:)
    type(tensor_map_t) :: input_map
    type(tensor_map_t) :: output_map

    Return Value type(trainable_network_t)


Type-Bound Procedures

generic, public :: activation_function_name => default_real_activation_name, double_precision_activation_name

generic, public :: infer => default_real_infer, double_precision_infer

generic, public :: learn => default_real_learn

generic, public :: map_from_output_range => default_real_map_from_output_range, double_precision_map_from_output_range

generic, public :: map_to_input_range => default_real_map_to_input_range, double_precision_map_to_input_range

generic, public :: map_to_training_ranges => default_real_map_to_training_ranges

generic, public :: nodes_per_layer => default_real_nodes_per_layer, double_precision_nodes_per_layer

generic, public :: num_hidden_layers => default_real_num_hidden_layers, double_precision_num_hidden_layers

generic, public :: num_inputs => default_real_num_inputs, double_precision_num_inputs

generic, public :: num_outputs => default_real_num_outputs, double_precision_num_outputs

generic, public :: skip => default_real_skip, double_precision_skip

generic, public :: to_json => default_real_to_json, double_precision_to_json

generic, public :: train => default_real_train

procedure, private, non_overridable :: default_real_map_to_training_ranges

procedure, private, non_overridable :: default_real_train

  • interface

    private pure module subroutine default_real_train(self, mini_batches_arr, cost, adam, learning_rate)

    Arguments

    Type IntentOptional Attributes Name
    class(trainable_network_t), intent(inout) :: self
    type(mini_batch_t), intent(in) :: mini_batches_arr(:)
    real, intent(out), optional, allocatable :: cost(:)
    logical, intent(in) :: adam
    real, intent(in) :: learning_rate