layer_t Derived Type

type, public :: layer_t

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


Inherits

type~~layer_t~~InheritsGraph type~layer_t layer_t type~layer_t->type~layer_t next type~neuron_t neuron_t type~layer_t->type~neuron_t neuron type~neuron_t->type~neuron_t next

Components

Type Visibility Attributes Name Initial
type(neuron_t), private :: neuron

linked list of this layer's neurons

type(layer_t), private, allocatable :: next

next layer


Constructor

public interface layer_t

  • private recursive module function 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


Type-Bound Procedures

procedure, public :: count_inputs

  • interface

    private module function count_inputs(layer) result(num_inputs)

    Arguments

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

    Return Value integer

procedure, public :: count_layers

  • interface

    private module function count_layers(layer) result(num_layers)

    Arguments

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

    Return Value integer

procedure, public :: count_neurons

  • interface

    private module function count_neurons(layer) result(neurons_per_layer_result)

    Arguments

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

    Return Value integer, allocatable, (:)

procedure, public :: inference_engine

  • interface

    private module function inference_engine(hidden_layers, metadata, output_layer, input_range, output_range) result(inference_engine_)

    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_range_t), intent(in) :: input_range
    type(tensor_range_t), intent(in) :: output_range

    Return Value type(inference_engine_t)

procedure, public :: neurons_per_layer

  • interface

    private module function neurons_per_layer(self) result(num_neurons)

    Arguments

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

    Return Value integer

procedure, public :: next_allocated

  • interface

    private module function next_allocated(self) result(next_is_allocated)

    Arguments

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

    Return Value logical

procedure, public :: next_pointer

  • interface

    private module function next_pointer(self) result(next_ptr)

    Arguments

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

    Return Value type(layer_t), pointer