123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #ifndef _NICE_GMHIKERNELINCLUDE
- #define _NICE_GMHIKERNELINCLUDE
- #include <vector>
- #include <core/algebra/GenericMatrix.h>
- #include "ImplicitKernelMatrix.h"
- #include "FeatureMatrixT.h"
- #include "FastMinKernel.h"
- namespace NICE {
-
- class GMHIKernel : public ImplicitKernelMatrix
- {
- protected:
- FastMinKernel *fmk;
- const Quantization *q;
- ParameterizedFunction *pf;
- bool verbose;
- bool use_sparse_implementation;
- bool useOldPreparation;
- public:
-
- GMHIKernel( FastMinKernel *_fmk, ParameterizedFunction *_pf = NULL, const Quantization *_q = NULL );
-
-
- virtual void multiply (NICE::Vector & y, const NICE::Vector & x) const;
-
- virtual uint rows () const;
-
- virtual uint cols () const;
-
- virtual ~GMHIKernel();
-
-
- virtual void getDiagonalElements ( Vector & diagonalElements ) const;
- virtual void getFirstDiagonalElement ( double & diagonalElement ) const;
- uint getNumParameters() const;
- void getParameters(Vector & parameters) const;
- void setParameters(const Vector & parameters);
- bool outOfBounds(const Vector & parameters) const;
- Vector getParameterLowerBounds() const;
- Vector getParameterUpperBounds() const;
- void setVerbose( const bool & _verbose);
- void setUseOldPreparation( const bool & _useOldPreparation);
-
- virtual double approxFrobNorm() const;
- virtual void setApproximationScheme(const int & _approxScheme);
-
- void setFastMinKernel(NICE::FastMinKernel * _fmk){fmk = _fmk;};
-
-
-
-
- virtual void restore ( std::istream & is, int format = 0 ) {};
- virtual void store ( std::ostream & os, int format = 0 ) const {};
- virtual void clear () {};
-
-
-
-
-
-
- virtual void addExample( const NICE::SparseVector * example,
- const double & label,
- const bool & performOptimizationAfterIncrement = true
- );
-
- virtual void addMultipleExamples( const std::vector< const NICE::SparseVector * > & newExamples,
- const NICE::Vector & newLabels,
- const bool & performOptimizationAfterIncrement = true
- );
-
- };
- }
- #endif
|