Newer
Older

Michal Kravcenko
committed
/**
* DESCRIPTION OF THE FILE
*
* @author Michal Kravčenko
* @date 19.2.19 -
*/
#ifndef LIB4NEURO_LEARNINGSEQUENCE_H
#define LIB4NEURO_LEARNINGSEQUENCE_H
#include <4neuro.h>
#include "../settings.h"
#include "../constants.h"

Michal Kravcenko
committed
namespace lib4neuro {
/**
*
*/

Michal Kravcenko
committed
private:
/**
*
*/
std::vector<std::shared_ptr<LearningMethod>> learning_sequence;

Michal Kravcenko
committed
/**
*
*/
double tol;
/**
*
*/
std::vector<double> best_parameters; // = nullptr;

Michal Kravcenko
committed
/**
*
*/
int max_number_of_cycles = -1;
public:
/**
*
*/
LIB4NEURO_API explicit LearningSequence( double tolerance = 1e-6, int max_n_cycles = -1);
/**
* Deallocates the instance
*/
LIB4NEURO_API ~LearningSequence();
/**
*
* @param ef
* @param ofs
*/
LIB4NEURO_API void optimize(lib4neuro::ErrorFunction &ef, std::ofstream* ofs = nullptr) override;
/**
*
* @return
*/
LIB4NEURO_API std::shared_ptr<std::vector<double>> get_parameters() override;

Michal Kravcenko
committed
/**
*
* @param method
*/
LIB4NEURO_API void add_learning_method( std::shared_ptr<LearningMethod> method );

Michal Kravcenko
committed
};
}
#endif //LIB4NEURO_LEARNINGSEQUENCE_H