Skip to content
Snippets Groups Projects
LearningSequence.h 1.45 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     * 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's avatar
    Michal Kravcenko committed
    #include "LearningMethod.h"
    
    Michal Kravcenko's avatar
    Michal Kravcenko committed
        class LearningSequence : public LearningMethod {
    
            std::vector<std::shared_ptr<LearningMethod>> learning_sequence;
    
            std::vector<double> best_parameters; // = nullptr;
    
    
            /**
             *
             */
            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;
    
            LIB4NEURO_API void add_learning_method( std::shared_ptr<LearningMethod> method );