Define an abstraction that supports training a neural network
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private, | parameter | :: | input_layer | = | 0 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(inference_engine_t), | intent(in) | :: | inference_engine |
Type | Intent | Optional | 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 |
Type | Intent | Optional | 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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self | |||
type(tensor_t), | intent(in) | :: | inputs |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self | |||
type(tensor_t), | intent(in) | :: | tensor |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self | |||
type(tensor_t), | intent(in) | :: | tensor |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self | |||
type(tensor_t), | intent(in) | :: | tensor |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self | |||
type(tensor_t), | intent(in) | :: | tensor |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trainable_engine_t), | intent(in) | :: | self |
Type | Intent | Optional | 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 |
Encapsulate the information needed to perform training
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rkind), | private, | allocatable | :: | b(:,:) | |||
class(differentiable_activation_strategy_t), | private, | allocatable | :: | differentiable_activation_strategy_ | |||
type(tensor_range_t), | private | :: | input_range_ | ||||
type(string_t), | private, | allocatable | :: | metadata_(:) | |||
integer, | private, | allocatable | :: | n(:) | |||
type(tensor_range_t), | private | :: | output_range_ | ||||
real(kind=rkind), | private, | allocatable | :: | w(:,:,:) |
private pure, module function construct_from_inference_engine (inference_engine) | |
private pure, module function construct_from_padded_arrays (nodes, weights, biases, differentiable_activation_strategy, metadata, input_range, output_range) | |
private module function perturbed_identity_network (training_configuration, perturbation_magnitude, metadata, input_range, output_range) |
procedure, public :: assert_consistent | |
procedure, public :: infer | |
procedure, public :: map_from_input_training_range | |
procedure, public :: map_from_output_training_range | |
procedure, public :: map_to_input_training_range | |
procedure, public :: map_to_output_training_range | |
procedure, public :: num_inputs | |
procedure, public :: num_layers | |
procedure, public :: num_outputs | |
procedure, public :: to_inference_engine | |
procedure, public :: train |