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()); }
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()); }
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()); }
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()); }