layer_m Module


Uses

  • module~~layer_m~~UsesGraph module~layer_m layer_m julienne_string_m julienne_string_m module~layer_m->julienne_string_m module~double_precision_string_m double_precision_string_m module~layer_m->module~double_precision_string_m module~kind_parameters_m kind_parameters_m module~layer_m->module~kind_parameters_m module~metadata_m metadata_m module~layer_m->module~metadata_m module~neural_network_m neural_network_m module~layer_m->module~neural_network_m module~neuron_m neuron_m module~layer_m->module~neuron_m module~tensor_map_m tensor_map_m module~layer_m->module~tensor_map_m julienne_m julienne_m module~double_precision_string_m->julienne_m module~metadata_m->julienne_string_m module~metadata_m->module~double_precision_string_m module~neural_network_m->module~kind_parameters_m module~neural_network_m->module~metadata_m module~neural_network_m->module~tensor_map_m module~neural_network_m->julienne_m module~activation_m activation_m module~neural_network_m->module~activation_m module~double_precision_file_m double_precision_file_m module~neural_network_m->module~double_precision_file_m module~mini_batch_m mini_batch_m module~neural_network_m->module~mini_batch_m module~tensor_m tensor_m module~neural_network_m->module~tensor_m module~neuron_m->julienne_string_m module~neuron_m->module~double_precision_string_m module~neuron_m->module~kind_parameters_m module~tensor_map_m->module~double_precision_string_m module~tensor_map_m->module~kind_parameters_m module~tensor_map_m->julienne_m module~tensor_map_m->module~tensor_m module~activation_m->julienne_m iso_c_binding iso_c_binding module~activation_m->iso_c_binding module~double_precision_file_m->module~double_precision_string_m module~double_precision_file_m->julienne_m module~mini_batch_m->module~kind_parameters_m module~input_output_pair_m input_output_pair_m module~mini_batch_m->module~input_output_pair_m module~tensor_m->module~kind_parameters_m module~input_output_pair_m->module~kind_parameters_m module~input_output_pair_m->module~tensor_m

Used by

  • module~~layer_m~~UsedByGraph module~layer_m layer_m module~layer_s layer_s module~layer_s->module~layer_m module~neural_network_s neural_network_s module~neural_network_s->module~layer_m

Interfaces

public interface layer_t

  • private recursive module function default_real_construct_layer(layer_lines, start) result(layer)

    construct a linked list of layer_t objects from an array of JSON-formatted text lines

    Arguments

    Type IntentOptional Attributes Name
    type(string_t), intent(in) :: layer_lines(:)
    integer, intent(in) :: start

    Return Value type(layer_t), target

  • private recursive module function double_precision_construct_layer(layer_lines, start) result(layer)

    construct a linked list of layer_t objects from an array of JSON-formatted text lines

    Arguments

    Type IntentOptional Attributes Name
    type(double_precision_string_t), intent(in) :: layer_lines(:)
    integer, intent(in) :: start

    Return Value type(layer_t(double_precision)), target

interface

  • private module function default_real_count_inputs(layer) result(num_inputs)

    Arguments

    Type IntentOptional Attributes Name
    class(layer_t), intent(in) :: layer

    Return Value integer

interface

  • private module function default_real_count_layers(layer) result(num_layers)

    Arguments

    Type IntentOptional Attributes Name
    class(layer_t), intent(in), target :: layer

    Return Value integer

interface

  • private module function default_real_count_neurons(layer) result(neurons_per_layer_result)

    Arguments

    Type IntentOptional Attributes Name
    class(layer_t), intent(in), target :: layer

    Return Value integer, allocatable, (:)

interface

  • private module function default_real_neural_network(hidden_layers, metadata, output_layer, input_map, output_map) result(neural_network_)

    Arguments

    Type IntentOptional Attributes Name
    class(layer_t), intent(in), target :: hidden_layers
    type(string_t), intent(in) :: metadata(:)
    type(layer_t), intent(in), target :: output_layer
    type(tensor_map_t), intent(in) :: input_map
    type(tensor_map_t), intent(in) :: output_map

    Return Value type(neural_network_t)

interface

  • private module function default_real_neurons_per_layer(self) result(num_neurons)

    Arguments

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

    Return Value integer

interface

  • private module function default_real_next_allocated(self) result(next_is_allocated)

    Arguments

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

    Return Value logical

interface

  • private module function default_real_next_pointer(self) result(next_ptr)

    Arguments

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

    Return Value type(layer_t), pointer

interface

  • private module function double_precision_count_inputs(layer) result(num_inputs)

    Arguments

    Type IntentOptional Attributes Name
    class(layer_t(double_precision)), intent(in) :: layer

    Return Value integer

interface

  • private module function double_precision_count_layers(layer) result(num_layers)

    Arguments

    Type IntentOptional Attributes Name
    class(layer_t(double_precision)), intent(in), target :: layer

    Return Value integer

interface

  • private module function double_precision_count_neurons(layer) result(neurons_per_layer_result)

    Arguments

    Type IntentOptional Attributes Name
    class(layer_t(double_precision)), intent(in), target :: layer

    Return Value integer, allocatable, (:)

interface

  • private module function double_precision_neural_network(hidden_layers, metadata, output_layer, input_map, output_map) result(neural_network_)

    Arguments

    Type IntentOptional Attributes Name
    class(layer_t(double_precision)), intent(in), target :: hidden_layers
    type(metadata_t), intent(in) :: metadata
    type(layer_t(double_precision)), intent(in), target :: output_layer
    type(tensor_map_t(double_precision)), intent(in) :: input_map
    type(tensor_map_t(double_precision)), intent(in) :: output_map

    Return Value type(neural_network_t(double_precision))

interface

  • private module function double_precision_neurons_per_layer(self) result(num_neurons)

    Arguments

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

    Return Value integer

interface

  • private module function double_precision_next_allocated(self) result(next_is_allocated)

    Arguments

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

    Return Value logical

interface

  • private module function double_precision_next_pointer(self) result(next_ptr)

    Arguments

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

    Return Value type(layer_t(double_precision)), pointer


Derived Types

type, public ::  layer_t

linked list of layers, each comprised of a linked list of neurons

Components

Type Visibility Attributes Name Initial
integer, public, kind :: k = default_real
type(neuron_t(k)), private :: neuron

linked list of this layer's neurons

type(layer_t(k)), private, allocatable :: next

next layer

Constructor

private recursive, module function default_real_construct_layer (layer_lines, start)

construct a linked list of layer_t objects from an array of JSON-formatted text lines

private recursive, module function double_precision_construct_layer (layer_lines, start)

construct a linked list of layer_t objects from an array of JSON-formatted text lines

Type-Bound Procedures

generic, public :: count_inputs => default_real_count_inputs, double_precision_count_inputs
generic, public :: count_layers => default_real_count_layers, double_precision_count_layers
generic, public :: count_neurons => default_real_count_neurons, double_precision_count_neurons
generic, public :: neural_network => default_real_neural_network, double_precision_neural_network
generic, public :: neurons_per_layer => default_real_neurons_per_layer, double_precision_neurons_per_layer
generic, public :: next_allocated => default_real_next_allocated, double_precision_next_allocated
generic, public :: next_pointer => default_real_next_pointer, double_precision_next_pointer
procedure, private :: default_real_count_inputs
procedure, private :: default_real_count_layers
procedure, private :: default_real_count_neurons
procedure, private :: default_real_neural_network
procedure, private :: default_real_neurons_per_layer
procedure, private :: default_real_next_allocated
procedure, private :: default_real_next_pointer
procedure, private :: double_precision_count_inputs
procedure, private :: double_precision_count_layers
procedure, private :: double_precision_count_neurons
procedure, private :: double_precision_neural_network
procedure, private :: double_precision_neurons_per_layer
procedure, private :: double_precision_next_allocated
procedure, private :: double_precision_next_pointer