trainable_engine_s Submodule


Uses

  • module~~trainable_engine_s~~UsesGraph module~trainable_engine_s trainable_engine_s assert_m assert_m module~trainable_engine_s->assert_m intrinsic_array_m intrinsic_array_m module~trainable_engine_s->intrinsic_array_m module~tensor_m tensor_m module~trainable_engine_s->module~tensor_m module~trainable_engine_m trainable_engine_m module~trainable_engine_s->module~trainable_engine_m module~kind_parameters_m kind_parameters_m module~tensor_m->module~kind_parameters_m module~trainable_engine_m->module~tensor_m module~differentiable_activation_strategy_m differentiable_activation_strategy_m module~trainable_engine_m->module~differentiable_activation_strategy_m module~inference_engine_m_ inference_engine_m_ module~trainable_engine_m->module~inference_engine_m_ module~trainable_engine_m->module~kind_parameters_m module~mini_batch_m mini_batch_m module~trainable_engine_m->module~mini_batch_m module~tensor_range_m tensor_range_m module~trainable_engine_m->module~tensor_range_m module~training_configuration_m training_configuration_m module~trainable_engine_m->module~training_configuration_m sourcery_string_m sourcery_string_m module~trainable_engine_m->sourcery_string_m module~activation_strategy_m activation_strategy_m module~differentiable_activation_strategy_m->module~activation_strategy_m module~inference_engine_m_->module~tensor_m module~inference_engine_m_->module~differentiable_activation_strategy_m module~inference_engine_m_->module~kind_parameters_m module~inference_engine_m_->module~tensor_range_m module~inference_engine_m_->sourcery_string_m module~inference_engine_m_->module~activation_strategy_m sourcery_file_m sourcery_file_m module~inference_engine_m_->sourcery_file_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_range_m->module~tensor_m sourcery_m sourcery_m module~tensor_range_m->sourcery_m module~training_configuration_m->module~differentiable_activation_strategy_m module~training_configuration_m->module~kind_parameters_m module~training_configuration_m->sourcery_string_m module~hyperparameters_m hyperparameters_m module~training_configuration_m->module~hyperparameters_m module~network_configuration_m network_configuration_m module~training_configuration_m->module~network_configuration_m module~training_configuration_m->sourcery_file_m module~activation_strategy_m->module~kind_parameters_m module~activation_strategy_m->sourcery_string_m module~hyperparameters_m->module~kind_parameters_m module~hyperparameters_m->sourcery_string_m module~input_output_pair_m->module~tensor_m module~input_output_pair_m->module~kind_parameters_m module~network_configuration_m->sourcery_string_m

Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: input_layer = 0

Module Procedures

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html assert_consistent pure module subroutine assert_consistent(self)

Arguments

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

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html construct_from_inference_engine pure module function construct_from_inference_engine(inference_engine) result(trainable_engine)

Arguments

Type IntentOptional Attributes Name
type(inference_engine_t), intent(in) :: inference_engine

Return Value type(trainable_engine_t)

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html construct_from_padded_arrays pure module function construct_from_padded_arrays(nodes, weights, biases, differentiable_activation_strategy, metadata, input_range, output_range) result(trainable_engine)

Arguments

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

Return Value type(trainable_engine_t)

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html infer elemental module function infer(self, inputs) result(outputs)

Arguments

Type IntentOptional Attributes Name
class(trainable_engine_t), intent(in) :: self
type(tensor_t), intent(in) :: inputs

Return Value type(tensor_t)

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html map_from_input_training_range elemental module function map_from_input_training_range(self, tensor) result(unnormalized_tensor)

Arguments

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

Return Value type(tensor_t)

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html map_from_output_training_range elemental module function map_from_output_training_range(self, tensor) result(unnormalized_tensor)

Arguments

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

Return Value type(tensor_t)

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html map_to_input_training_range elemental module function map_to_input_training_range(self, tensor) result(normalized_tensor)

Arguments

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

Return Value type(tensor_t)

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html map_to_output_training_range elemental module function map_to_output_training_range(self, tensor) result(normalized_tensor)

Arguments

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

Return Value type(tensor_t)

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html num_inputs elemental module function num_inputs(self) result(n_in)

Arguments

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

Return Value integer

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html num_layers elemental module function num_layers(self) result(n_layers)

Arguments

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

Return Value integer

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html num_outputs elemental module function num_outputs(self) result(n_out)

Arguments

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

Return Value integer

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html perturbed_identity_network module function perturbed_identity_network(training_configuration, perturbation_magnitude, metadata, input_range, output_range) result(trainable_engine)

Arguments

Type IntentOptional Attributes Name
type(training_configuration_t), intent(in) :: training_configuration
real(kind=rkind), intent(in) :: perturbation_magnitude
type(string_t), intent(in) :: metadata(:)
type(tensor_range_t) :: input_range
type(tensor_range_t) :: output_range

Return Value type(trainable_engine_t)

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html to_inference_engine module function to_inference_engine(self) result(inference_engine)

Arguments

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

Return Value type(inference_engine_t)

module procedure /home/runner/work/inference-engine/inference-engine/doc/html/module/trainable_engine_s.html train pure module subroutine train(self, mini_batches_arr, cost, adam, learning_rate)

Arguments

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