inference_engine_t Derived Type

type, public :: inference_engine_t

Encapsulate the minimal information needed to perform inference


Inherits

type~~inference_engine_t~~InheritsGraph type~inference_engine_t inference_engine_t string_t string_t type~inference_engine_t->string_t metadata_ type~activation_strategy_t activation_strategy_t type~inference_engine_t->type~activation_strategy_t activation_strategy_ type~tensor_range_t tensor_range_t type~inference_engine_t->type~tensor_range_t input_range_, output_range_

Components

Type Visibility Attributes Name Initial
class(activation_strategy_t), private, allocatable :: activation_strategy_
real(kind=rkind), private, allocatable :: biases_(:,:)
type(tensor_range_t), private :: input_range_
type(string_t), private :: metadata_(size(key))
integer, private, allocatable :: nodes_(:)
type(tensor_range_t), private :: output_range_
real(kind=rkind), private, allocatable :: weights_(:,:,:)

Constructor

public interface inference_engine_t

  • private impure elemental module function construct_from_json(file_) result(inference_engine)

    Arguments

    Type IntentOptional Attributes Name
    type(file_t), intent(in) :: file_

    Return Value type(inference_engine_t)

  • private pure module function construct_from_padded_arrays(metadata, weights, biases, nodes, input_range, output_range) result(inference_engine)

    Arguments

    Type IntentOptional Attributes Name
    type(string_t), intent(in) :: metadata(:)
    real(kind=rkind), intent(in) :: weights(:,:,:)
    real(kind=rkind), intent(in) :: biases(:,:)
    integer, intent(in) :: nodes(0:)
    type(tensor_range_t), intent(in), optional :: input_range
    type(tensor_range_t), intent(in), optional :: output_range

    Return Value type(inference_engine_t)


Type-Bound Procedures

procedure, public :: activation_function_name

  • interface

    private elemental module function activation_function_name(self) result(activation_name)

    Arguments

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

    Return Value type(string_t)

procedure, public :: assert_conformable_with

procedure, public :: infer

procedure, public :: map_from_output_range

  • interface

    private elemental module function map_from_output_range(self, normalized_tensor) result(tensor)

    The result contains the output tensor values unnormalized via the inverse of the mapping used in training

    Arguments

    Type IntentOptional Attributes Name
    class(inference_engine_t), intent(in) :: self
    type(tensor_t), intent(in) :: normalized_tensor

    Return Value type(tensor_t)

procedure, public :: map_to_input_range

  • interface

    private elemental module function map_to_input_range(self, tensor) result(normalized_tensor)

    The result contains the input tensor values normalized to fall on the range used during training

    Arguments

    Type IntentOptional Attributes Name
    class(inference_engine_t), intent(in) :: self
    type(tensor_t), intent(in) :: tensor

    Return Value type(tensor_t)

procedure, public :: nodes_per_layer

  • interface

    private pure module function nodes_per_layer(self) result(node_count)

    Arguments

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

    Return Value integer, allocatable, (:)

procedure, public :: num_inputs

  • interface

    private elemental module function num_inputs(self) result(input_count)

    Arguments

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

    Return Value integer

procedure, public :: num_outputs

  • interface

    private elemental module function num_outputs(self) result(output_count)

    Arguments

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

    Return Value integer

generic, public :: operator(-) => subtract

  • private interface subtract()

    Arguments

    None

procedure, public :: skip

  • interface

    private pure module function skip(self) result(use_skip_connections)

    Arguments

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

    Return Value logical

procedure, public :: to_exchange

procedure, public :: to_json

  • interface

    private impure elemental module function to_json(self) result(json_file)

    Arguments

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

    Return Value type(file_t)

procedure, private :: subtract