Vector<double> NormalizedSquaredError::calculate_terms(const Vector<double>& network_parameters) const
{
   // Control sentence (if debug)

   #ifdef __OPENNN_DEBUG__ 

   check();

   #endif


   #ifdef __OPENNN_DEBUG__ 

   const size_t size = network_parameters.size();

   const MultilayerPerceptron* multilayer_perceptron_pointer = neural_network_pointer->get_multilayer_perceptron_pointer();

   const size_t neural_parameters_number = multilayer_perceptron_pointer->count_parameters_number();

   if(size != neural_parameters_number)
   {
      std::ostringstream buffer;

      buffer << "OpenNN Exception: NormalizedSquaredError class.\n"
             << "double calculate_terms(const Vector<double>&) const method.\n"
             << "Size (" << size << ") must be equal to number of multilayer perceptron parameters (" << neural_parameters_number << ").\n";

      throw std::logic_error(buffer.str());
   }

   #endif

   NeuralNetwork neural_network_copy(*neural_network_pointer);

   neural_network_copy.set_parameters(network_parameters);

   NormalizedSquaredError normalized_squared_error_copy(*this);

   normalized_squared_error_copy.set_neural_network_pointer(&neural_network_copy);

   return(normalized_squared_error_copy.calculate_terms());
}
Esempio n. 2
0
Vector<double> MeanSquaredError::calculate_terms(
    const Vector<double>& network_parameters) const {
// Control sentence (if debug)

#ifndef NDEBUG

  check();

#endif

#ifndef NDEBUG

  std::ostringstream buffer;

  const unsigned size = network_parameters.size();

  const unsigned parameters_number =
      neural_network_pointer->count_parameters_number();

  if (size != parameters_number) {
    buffer << "OpenNN Exception: MeanSquaredError class.\n"
           << "double calculate_terms(const Vector<double>&) const method.\n"
           << "Size (" << size
           << ") must be equal to number of multilayer perceptron parameters ("
           << parameters_number << ").\n";

    throw std::logic_error(buffer.str());
  }

#endif

  NeuralNetwork neural_network_copy(*neural_network_pointer);

  neural_network_copy.set_parameters(network_parameters);

  MeanSquaredError mean_squared_error_copy(*this);

  mean_squared_error_copy.set_neural_network_pointer(&neural_network_copy);

  return (mean_squared_error_copy.calculate_terms());
}
double AircraftLandingSolutionError::calculate_evaluation(const Vector<double>& parameters) const   
{
   // Control sentence

   #ifdef _DEBUG 

   check();

   #endif

   NeuralNetwork neural_network_copy(*neural_network_pointer);

   neural_network_copy.set_parameters(parameters);

   AircraftLandingSolutionError solutions_error_copy(*this);

   solutions_error_copy.set_neural_network_pointer(&neural_network_copy);
   solutions_error_copy.set_mathematical_model_pointer(mathematical_model_pointer);

   return(solutions_error_copy.calculate_evaluation());
}
Esempio n. 4
0
double SolutionsError::calculate_performance(const Vector<double>& parameters) const   
{
   // Control sentence

   #ifdef __OPENNN_DEBUG__ 

   check();

   #endif

   NeuralNetwork neural_network_copy(*neural_network_pointer);

   neural_network_copy.set_parameters(parameters);

   SolutionsError solutions_error_copy(*this);

   solutions_error_copy.set_neural_network_pointer(&neural_network_copy);
   solutions_error_copy.set_mathematical_model_pointer(mathematical_model_pointer);

   return(solutions_error_copy.calculate_performance());
}
double IndependentParametersError::calculate_performance(const Vector<double>& parameters) const  
{
   // Neural network stuff

   #ifdef __OPENNN_DEBUG__ 

   check();

   #endif


#ifdef __OPENNN_DEBUG__ 

   const size_t size = parameters.size();

   const size_t parameters_number = neural_network_pointer->count_parameters_number();

   if(size != parameters_number)
   {
      std::ostringstream buffer;

      buffer << "OpenNN Exception: IndependentParametersError class." << std::endl
             << "double calculate_performance(const Vector<double>&) const method." << std::endl
             << "Size of parameters (" << size << ") must be equal to number of parameters (" << parameters_number << ")." << std::endl;

      throw std::logic_error(buffer.str());
   }

   #endif

   NeuralNetwork neural_network_copy(*neural_network_pointer);

   neural_network_copy.set_parameters(parameters);

   IndependentParametersError independent_parameters_error_copy(*this);

   independent_parameters_error_copy.set_neural_network_pointer(&neural_network_copy);

   return(independent_parameters_error_copy.calculate_performance());
}
Esempio n. 6
0
double MinkowskiError::calculate_evaluation(const Vector<double>& parameters) const
{
   // Control sentence (if debug)

   #ifdef _DEBUG 

   check();

   #endif

   #ifdef _DEBUG 

   const unsigned int size = parameters.size();

   const unsigned int parameters_number = neural_network_pointer->count_parameters_number();

   if(size != parameters_number)
   {
      std::ostringstream buffer;

      buffer << "OpenNN Exception: MeanSquaredError class.\n"
             << "double calculate_evaluation(const Vector<double>&) const method.\n"
             << "Size (" << size << ") must be equal to number of parameters (" << parameters_number << ").\n";

      throw std::logic_error(buffer.str().c_str());
   }

   #endif

   NeuralNetwork neural_network_copy(*neural_network_pointer);

   neural_network_copy.set_parameters(parameters);

   MinkowskiError Minkowski_error_copy(*this);

   Minkowski_error_copy.set_neural_network_pointer(&neural_network_copy);

   return(Minkowski_error_copy.calculate_evaluation());
}