11 #ifndef _DIRECTORKERNEL_H___
12 #define _DIRECTORKERNEL_H___
16 #ifdef USE_SWIG_DIRECTORS
23 #define IGNORE_IN_CLASSLIST
31 : CKernel(), external_features(false)
37 CDirectorKernel(
bool is_external_features)
38 : CKernel(), external_features(is_external_features)
45 CDirectorKernel(int32_t size,
bool is_external_features)
46 : CKernel(size), external_features(is_external_features)
53 virtual ~CDirectorKernel()
64 virtual bool init(CFeatures* l, CFeatures* r)
66 if (this->parallel->get_num_threads()!=1)
68 SG_WARNING(
"Enforcing to use only one thread due to restrictions of directors\n")
69 this->parallel->set_num_threads(1);
71 return CKernel::init(l, r);
78 virtual
bool set_normalizer(CKernelNormalizer* normalizer)
87 virtual CKernelNormalizer* get_normalizer()
95 virtual bool init_normalizer()
106 virtual void cleanup()
111 virtual float64_t kernel_function(int32_t idx_a, int32_t idx_b)
113 SG_ERROR(
"Kernel function of Director Kernel needs to be overridden.\n")
122 virtual SGVector<
float64_t> get_kernel_col(int32_t j)
132 virtual SGVector<float64_t> get_kernel_row(int32_t i)
141 virtual int32_t get_num_vec_lhs()
150 virtual int32_t get_num_vec_rhs()
159 virtual void set_num_vec_lhs(int32_t num)
168 virtual void set_num_vec_rhs(int32_t num)
177 virtual bool has_features()
179 if (!external_features)
186 virtual void remove_lhs_and_rhs()
192 virtual void remove_lhs()
198 virtual void remove_rhs()
225 virtual const char* get_name()
const {
return "DirectorKernel"; }
230 virtual void clear_normal()
240 virtual void add_to_normal(int32_t vector_idx,
float64_t weight)
261 virtual bool init_optimization(
262 int32_t count, int32_t *IDX,
float64_t *weights)
271 virtual bool delete_optimization()
281 virtual float64_t compute_optimized(int32_t vector_idx)
294 virtual void compute_batch(
295 int32_t num_vec, int32_t* vec_idx,
float64_t* target,
296 int32_t num_suppvec, int32_t* IDX,
float64_t* alphas,
306 virtual int32_t get_num_subkernels()
316 virtual void compute_by_subkernel(
317 int32_t vector_idx,
float64_t * subkernel_contrib)
327 virtual const float64_t* get_subkernel_weights(int32_t& num_weights)
336 virtual void set_subkernel_weights(SGVector<float64_t> weights)
361 virtual TParameter* migrate(DynArray<TParameter*>* param_base,
362 const SGParamInfo* target)
364 return CSGObject::migrate(param_base, target);
389 virtual void one_to_one_migration_prepare(DynArray<TParameter*>* param_base,
390 const SGParamInfo* target, TParameter*& replacement,
391 TParameter*& to_migrate,
char* old_name=NULL)
393 return CSGObject::one_to_one_migration_prepare(param_base, target,
394 replacement, to_migrate, old_name);
404 virtual void load_serializable_pre() throw (ShogunException)
417 virtual void load_serializable_post() throw (ShogunException)
430 virtual void save_serializable_pre() throw (ShogunException)
443 virtual void save_serializable_post() throw (ShogunException)
456 virtual float64_t compute(int32_t idx_a, int32_t idx_b)
458 return kernel_function(idx_a, idx_b);
461 virtual void register_params()
468 bool external_features;
virtual void clear_normal()
virtual void load_serializable_post()
virtual void compute_by_subkernel(int32_t vector_idx, float64_t *subkernel_contrib)
virtual bool set_normalizer(CKernelNormalizer *normalizer)
virtual bool delete_optimization()
virtual void set_optimization_type(EOptimizationType t)
virtual void remove_rhs()
takes all necessary steps if the rhs is removed from kernel
virtual int32_t get_num_vec_lhs()
EFeatureClass
shogun feature class
virtual void register_params()
virtual SGVector< float64_t > get_kernel_col(int32_t j)
virtual void remove_lhs_and_rhs()
virtual CKernelNormalizer * get_normalizer()
virtual SGVector< float64_t > get_subkernel_weights()
virtual void save_serializable_post()
virtual float64_t compute_optimized(int32_t vector_idx)
virtual int32_t get_num_vec_rhs()
virtual void set_subkernel_weights(SGVector< float64_t > weights)
virtual bool init_normalizer()
EFeatureType
shogun feature type
virtual void load_serializable_pre()
all of classes and functions are contained in the shogun namespace
virtual void compute_batch(int32_t num_vec, int32_t *vec_idx, float64_t *target, int32_t num_suppvec, int32_t *IDX, float64_t *alphas, float64_t factor=1.0)
#define IGNORE_IN_CLASSLIST
virtual bool init_optimization(int32_t count, int32_t *IDX, float64_t *weights)
virtual void save_serializable_pre()
virtual void remove_lhs()
virtual int32_t get_num_subkernels()
virtual SGVector< float64_t > get_kernel_row(int32_t i)
virtual bool has_features()
virtual void add_to_normal(int32_t vector_idx, float64_t weight)