Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef _VW_LEARNER_H__
00017 #define _VW_LEARNER_H__
00018
00019 #include <shogun/base/SGObject.h>
00020 #include <shogun/base/Parameter.h>
00021 #include <shogun/classifier/vw/vw_common.h>
00022 #include <shogun/classifier/vw/VwRegressor.h>
00023
00024 namespace shogun
00025 {
00033 class CVwLearner: public CSGObject
00034 {
00035 public:
00039 CVwLearner()
00040 : CSGObject(), reg(NULL), env(NULL)
00041 {
00042 register_learner_params();
00043 }
00044
00051 CVwLearner(CVwRegressor* regressor, CVwEnvironment* vw_env)
00052 : CSGObject(), reg(regressor), env(vw_env)
00053 {
00054 SG_REF(reg);
00055 SG_REF(env);
00056 register_learner_params();
00057 }
00058
00062 virtual ~CVwLearner()
00063 {
00064 if (reg)
00065 SG_UNREF(reg);
00066 if (env)
00067 SG_UNREF(env);
00068 }
00069
00073 void register_learner_params()
00074 {
00075 SG_ADD((CSGObject**) ®, "vw_regressor", "Regressor object",
00076 MS_NOT_AVAILABLE);
00077 SG_ADD((CSGObject**) &env, "vw_env", "Environment",
00078 MS_NOT_AVAILABLE);
00079 }
00080
00087 virtual void train(VwExample* &ex, float32_t update) = 0;
00088
00094 virtual const char* get_name() const { return "VwLearner"; }
00095
00096 protected:
00098 CVwRegressor *reg;
00100 CVwEnvironment *env;
00101 };
00102 }
00103 #endif // _VW_LEARNER_H__