diff --git a/src/inference_engine/inference_engine_m_.f90 b/src/inference_engine/inference_engine_m_.f90 index 58f95ea7a..9edc2af85 100644 --- a/src/inference_engine/inference_engine_m_.f90 +++ b/src/inference_engine/inference_engine_m_.f90 @@ -31,8 +31,8 @@ module inference_engine_m_ contains procedure :: infer procedure :: to_json - procedure :: input_range - procedure :: output_range + procedure :: map_to_input_range + procedure :: map_from_output_range procedure :: num_inputs procedure :: num_outputs procedure :: nodes_per_layer @@ -82,16 +82,20 @@ impure elemental module function construct_from_json(file_) result(inference_eng interface - pure module function input_range(self) result(my_input_range) + 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 implicit none class(inference_engine_t), intent(in) :: self - type(tensor_range_t) my_input_range + type(tensor_t), intent(in) :: tensor + type(tensor_t) normalized_tensor end function - pure module function output_range(self) result(my_output_range) + 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 implicit none class(inference_engine_t), intent(in) :: self - type(tensor_range_t) my_output_range + type(tensor_t), intent(in) :: normalized_tensor + type(tensor_t) tensor end function pure module function to_exchange(self) result(exchange) diff --git a/src/inference_engine/inference_engine_s.F90 b/src/inference_engine/inference_engine_s.F90 index 2beb2df97..70ca7d889 100644 --- a/src/inference_engine/inference_engine_s.F90 +++ b/src/inference_engine/inference_engine_s.F90 @@ -18,12 +18,12 @@ contains - module procedure input_range - my_input_range = self%input_range_ + module procedure map_to_input_range + normalized_tensor = self%input_range_%map_to_training_range(tensor) end procedure - module procedure output_range - my_output_range = self%output_range_ + module procedure map_from_output_range + tensor = self%output_range_%map_from_training_range(normalized_tensor) end procedure module procedure to_exchange