Skip to content
Snippets Groups Projects
LearningMethod.h 1.09 KiB
Newer Older
/**
 * This file contains an interface for all learning methods in the library
 *
 * @author Michal Kravčenko
 * @date 12.8.18 -
 */

#ifndef LIB4NEURO_ILEARNINGMETHODS_H
#define LIB4NEURO_ILEARNINGMETHODS_H

#include <vector>
#include "../ErrorFunction/ErrorFunctions.h"

namespace lib4neuro {
    class LearningMethod {
    public:
        /**
         * Runs the method specific learning algorithm minimizing the given error function
         */
        virtual void optimize(lib4neuro::ErrorFunction& ef,
                              std::ofstream* ofs = nullptr) = 0;

        /**
         * Updates the optimal weight&bias settings in the passed vector
         */
        virtual std::shared_ptr<std::vector<double>> get_parameters() = 0;
    public:
        /**
         * Runs the method specific learning algorithm minimizing the given error function
         */
        virtual void optimize(ErrorFunction& ef,
                              std::ofstream* ofs = nullptr) override;

    };
}

#endif //LIB4NEURO_ILEARNINGMETHODS_H