10#include <boost/serialization/serialization.hpp>
11#include <boost/serialization/nvp.hpp>
14#ifndef FMTYIELDMODELNN_Hm_included
15#define FMTYIELDMODELNN_Hm_included
40 template<
class Archive>
41 void serialize(Archive& ar,
const unsigned int version)
43 ar & boost::serialization::make_nvp(
"FMTyieldmodel", boost::serialization::base_object<FMTYieldModel>(*
this));
98 static const std::vector<float>
_standardize(std::vector<float>& input,
const std::vector<float>& means,
const std::vector<float>& vars);
106 void _validateInputYields(std::vector<std::string>& expectedYields, std::vector<std::string>& inputYields)
const;
Abstract machine learning yield model based on a neural network.
Definition: FMTYieldModelNn.h:31
FMTYieldModelNn()=default
Default constructor for FMTYieldModelNn.
const std::vector< double > predict(const Core::FMTYieldRequest &request) const
Run the machine learning model to predict its outputs for a request.
static const std::vector< std::string > _getNextLineAndSplitIntoTokens(std::istream &str)
Read a CSV file line by line, splitting into tokens.
std::vector< float > m_standardParamMeans
Definition: FMTYieldModelNn.h:80
FMTYieldModelNn(const FMTYieldModelNn &rhs)
Copy constructor for FMTYieldModelNn.
std::vector< std::string > m_modelOutputs
Definition: FMTYieldModelNn.h:82
const std::vector< float > & _getStandardParamVars() const
Return the input variable variances used in the standardization process.
const std::string m_JSON_PROP_MODEL_YIELDS
Definition: FMTYieldModelNn.h:76
virtual ~FMTYieldModelNn()
Destructor for FMTYieldModelNn.
void _validateInputYields(std::vector< std::string > &expectedYields, std::vector< std::string > &inputYields) const
Validate that there is the expected number of inputs in the model.
const std::vector< std::string > & getModelOutputNames() const
Return the model output names.
const void removeNans(std::vector< float > &input) const
Replace nan values with default values.
const std::vector< float > & _getStandardParamMeans() const
Return the input variable means used in the standardization process.
const std::string m_JSON_PROP_MODEL_OUTPUTS
Definition: FMTYieldModelNn.h:77
FMTYieldModelNn(const boost::property_tree::ptree &jsonProps, std::vector< std::string > &inputYields)
Construct a FMTYieldModelNn from a JSON tree and an input yield name list.
std::string m_modelType
Definition: FMTYieldModelNn.h:79
const std::string & getModelType() const
Return the model type.
const std::string m_JSON_PROP_MODEL_TYPE
Definition: FMTYieldModelNn.h:75
friend class boost::serialization::access
Definition: FMTYieldModelNn.h:32
static std::unique_ptr< Ort::Env > m_envPtr
Definition: FMTYieldModelNn.h:71
std::unique_ptr< Ort::Session > m_sessionPtr
Definition: FMTYieldModelNn.h:72
std::vector< float > m_standardParamVars
Definition: FMTYieldModelNn.h:81
virtual const std::vector< double > getInputValues(const Graph::FMTPredictor &predictor) const =0
Return the input values based on a predictor.
const std::string m_JSON_PROP_STAND_FILE_PATH
Definition: FMTYieldModelNn.h:78
static const float m_UNKNOWN_DISTURBANCE_CODE
Definition: FMTYieldModelNn.h:74
static const std::vector< float > _standardize(std::vector< float > &input, const std::vector< float > &means, const std::vector< float > &vars)
Apply the standardization feature scaling to the inputs of a machine learning model.
Abstract class to be implemented as a machine learning yield model.
Definition: FMTYieldModel.h:45
Request for yield values using a development and optionally a graph vertex.
Definition: FMTYieldRequest.h:37
Predictor gathering the source and target ages, yields, distances and disturbances of a graph transit...
Definition: FMTPredictor.h:33
Definition: FMTYieldModel.h:30
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTAction.h:34
Definition: FMTYieldModelNn.h:18