1 #if !defined(_TRAININGCONFIGURATION2_) 2 #define _TRAININGCONFIGURATION2_ 24 #if !defined(_FEATUREVECTOR_
) 79 const KKStr& _parameterStr,
95 const KKStr& _parameterStr,
112 ModelParamPtr _modelParameters,
120 bool _validateDirectories,
159 (
const KKStr& _existingConfigFileName,
160 const KKStr& _subDir,
172 const KKStr& _parameterStr,
193 double Gamma ()
const;
231 double C_Param (MLClassPtr class1,
240 void C_Param (MLClassPtr class1,
247 void Gamma (
double _gamma);
302 bool& changesMadeToTrainingLibraries,
319 virtual void Save (
const KKStr& fileName)
const;
321 virtual void Save (std::ostream& o)
const;
358 KKStr& _errorMessage,
379 void BuildTrainingClassListFromDirectoryEntry (
const KKStr& rootDir,
387 void CreateModelParameters (
const KKStr& _parameterStr,
391 kkint32 _featuresIncludedLineNum,
398 void DetermineWhatTheRootDirectoryIs ();
410 void SyncronizeMLClassListWithTrainingClassList ();
416 void ValidateConfiguration (
RunLog& log);
418 void ValidateGlobalSection (
kkint32 sectionNum,
422 void ValidateOtherClass (MLClassPtr otherClass,
428 ValidateSubClassifier (
const KKStr& subClassifierName,
433 void ValidateTrainingClassConfig (
kkint32 sectionNum,
437 void ValidateTwoClassParameters (
kkint32 sectionNum,
444 KKStr configFileNameSpecified;
448 KKStr configRootName;
452 bool fvFactoryProducerSpecified;
454 MLClassListPtr mlClasses;
455 bool mlClassesWeOwnIt;
456 ModelTypes modelingMethod;
457 ModelParamPtr modelParameters;
459 MLClassPtr noiseMLClass;
463 MLClassPtr otherClass;
478 KKStr rootDirExpanded;
497 bool validateDirectories;
503 (
const KKStr& _className,
504 const KKStr& _configFileName,
505 bool _validateDirectories,
517 Factory (): className
("TrainingConfiguration2::Factory") {}
525 bool _validateDirectories,
542 static std::map<KKStr,Factory*>* registeredFactories;
544 static void FinalCleanUp ();
549 #define _TrainingConfiguration2_Defined_ 561 std::ostream& operator<< (std::ostream& os,
584 #define _TrainingConfiguration2List_Defined_ #define _FactoryFVProducer_Defined_
virtual void Load(const KKStr &_configFileName, bool _validateDirectories, RunLog &log)
Base class to all Learning Algorithms.
KKStr ModelTypeStr() const
static TrainingConfiguration2 * CreateFromDirectoryStructure(const KKStr &_existingConfigFileName, const KKStr &_subDir, FactoryFVProducerPtr _fvFactoryProducer, RunLog &_log, bool &_successful, KKStr &_errorMessage)
Will create a instance using a sub-directory tree to drive the TraningClassList.
Model::ModelTypes ModelType() const
void SetBinaryClassFields(MLClassPtr class1, MLClassPtr class2, const SVM233::svm_parameter &_param, const FeatureNumList &_features, float _weight)
void C_Param(double _CCC)
static KKStr ModelTypeToStr(ModelTypes _modelType)
const KKStr & ConfigRootName() const
const BinaryClassParmsPtr GetParamtersToUseFor2ClassCombo(MLClassPtr class1, MLClassPtr class2) const
static KKStr ModelTypeToStr(ModelTypes _modelingType)
TrainingClassPtr LocateByMLClassName(const KKStr &className)
FeatureNumList GetFeatureNums() const
bool FvFactoryProducerSpecified() const
decision_function svm_train_one(const svm_problem *prob, const svm_parameter *param, double Cp, double Cn, std::set< kkint32 > &BSVIndex)
void AddATrainingClass(TrainingClassPtr _trainClass)
Adds specified Training Class to list taking ownership of it.
Keeps track of selected features.
TrainingConfiguration2Ptr GenerateAConfiguraionForAHierarchialLevel(kkuint32 level, RunLog &log) const
void BuildTrainingClassListFromDirectoryStructure(const KKStr &_subDir, bool &_successful, KKStr &_errorMessage, RunLog &_log)
SVM_EncodingMethod EncodingMethod() const
Model::ModelTypes ModelingMethod() const
void ReadXMLPost(VolConstBool &cancelFlag, RunLog &log)
Factory(const KKStr &_className)
void SetModelParameters(ModelParamPtr _svmParanters, kkint32 _examplesPerClass)
void WriteXMLFields(std::ostream &o) const
To be used by both Base Class and Derived classes to write fields that are specific to 'TrainingConfi...
void SetFeatureNums(const FeatureNumList &features)
~TrainingConfiguration2List()
TrainingConfiguration2 * TrainingConfiguration2Ptr
virtual KKStr FactoryName() const
TrainingConfiguration2List(bool _owner)
void SetTrainingClasses(TrainingClassListPtr _trainingClasses)
TrainingConfiguration2Ptr LookUp(const KKStr &rootName) const
Returns the instance that has the same root name as 'rootName' if none found returns NULL...
static ModelTypes ModelTypeFromStr(const KKStr &_modelingTypeStr)
virtual void Save(std::ostream &o) const
FeatureVectorListPtr LoadFeatureDataFromTrainingLibraries(KKB::DateTime &latestImageTimeStamp, bool &changesMadeToTrainingLibraries, VolConstBool &cancelFlag, RunLog &log)
Load training data from the training library directories.
void MachineType(SVM_MachineType _machineType)
bool NormalizeNominalFeatures()
#define _FileDesc_Defined_
virtual ~TrainingConfiguration2()
unsigned __int32 kkuint32
kkuint32 NumHierarchialLevels() const
const SVMparam & SVMparamREF(RunLog &log) const
BinaryClassParmsPtr GetBinaryClassParms(MLClassPtr class1, MLClassPtr class2)
virtual FactoryFVProducerPtr DefaultFeatureVectorProducer(RunLog &runLog) const
Container class for FeatureVector derived objects.
static Factory * FactoryInstace()
void SelectionMethod(SVM_SelectionMethod _selectionMethod)
static TrainingConfiguration2 * CreateFromFeatureVectorList(FeatureVectorList &_examples, FileDescPtr _fileDesc, const KKStr &_parameterStr, RunLog &_log)
float AvgNumOfFeatures(FeatureVectorListPtr trainExamples) const
virtual const KKStr & ClassName()
void ModelParameters(ModelParamPtr _modelParameters)
float AvgNumOfFeatures() const
void ImagesPerClass(kkint32 _imagesPerClass)
FeatureNumList * FeatureNumListPtr
TrainingConfiguration2Const * TrainingConfiguration2ConstPtr
KKStr(const KKStr &str)
Copy Constructor.
kkint32 NumOfRounds() const
void AddATrainingClass(MLClassPtr _newClass)
Will assume that images for this class will be saved off the RootDirectory using its own name for the...
void SetFeatureNums(MLClassPtr class1, MLClassPtr class2, const FeatureNumList &_features, float _weight=-1)
SVM_MachineType MachineType() const
static bool ConfigFileExists(const KKStr &_configFileName)
XmlTag const * XmlTagConstPtr
void WriteXML(const KKStr &varName, std::ostream &o) const
Manages the reading and writing of objects in a simple XML format. For a class to be supported by Xml...
MLClassListPtr MlClasses() const
virtual void ReadXML(XmlStream &s, XmlTagConstPtr tag, VolConstBool &cancelFlag, RunLog &log)
MLClassPtr OtherClass() const
TrainingConfiguration2ListPtr SubClassifiers() const
TrainingConfiguration2 const TrainingConfiguration2Const
static KKStr GetEffectiveConfigFileName(const KKStr &configFileName)
Determine the correct configuration file name.
TrainingConfiguration2(MLClassListPtr _mlClasses, FactoryFVProducerPtr _fvFactoryProducer, const KKStr &_parameterStr, RunLog &_log)
Use this one if you want to create a default Configuration object.
static KKStr Concat(const std::vector< std::string > &values)
Concatenates the list of 'std::string' strings.
FileDescPtr FileDesc() const
void ExamplesPerClass(kkint32 _examplesPerClass)
void Number_of_rounds(kkint32 _number_of_rounds)
FeatureNumList GetFeatureNums(MLClassPtr class1, MLClassPtr class2)
Returns features selected for the specified class-pairIf none were specified for that pair will retur...
double C_Param(MLClassPtr class1, MLClassPtr class2) const
General purpose Configuration File manager class.
KKStr DirectoryPathForClass(MLClassPtr mlClass) const
Fully expanded directory path for specified class.
This class encapsulates are the information necessary to build a SVMModel class.
static void RegisterFatory(const KKStr &className, Factory *factory)
void RootDir(const KKStr &_rootDir)
const TrainingClassList & TrainingClasses() const
MLClassListPtr ExtractClassList() const
ModelParamOldSVM * ModelParamOldSVMPtr
XmlElementTrainingConfiguration2 * XmlElementTrainingConfiguration2Ptr
#define _NormalizationParms_Defined_
KKStr ModelParameterCmdLine() const
FeatureVectorListPtr LoadOtherClasssExamples(RunLog &runLog)
ModelParamPtr ModelParameters() const
TrainingClassList * TrainingClassListPtr
TrainingConfiguration2List * TrainingConfiguration2ListPtr
void EncodingMethod(SVM_EncodingMethod _encodingMethod)
virtual TrainingConfiguration2Ptr Duplicate() const
SVM_SelectionMethod SelectionMethod() const
virtual TrainingConfiguration2Ptr Manufacture(const KKStr &_configFileName, bool _validateDirectories, RunLog &_log)
TrainingConfiguration2(const TrainingConfiguration2 &tc)
const KKStr & RootDir() const
The root directory where Training library images are stored.
void A_Param(float _aParam)
TrainingConfiguration2(MLClassListPtr _mlClasses, FileDescPtr _fileDesc, const KKStr &_parameterStr, RunLog &_log)
Use this one if you want to create a default Configuration object.
KKStr RootDirExpanded() const
MLClassPtr NoiseMLClass() const
static Factory * factoryInstace
kkint32 ExamplesPerClass() const
Used for logging messages.
void EncodeProblem(const struct svm_paramater ¶m, struct svm_problem &prob_in, struct svm_problem &prob_out)
const TrainingClassPtr NoiseTrainingClass() const
MLClassListPtr ExtractFullHierachyOfClasses() const
SVM_KernalType KernalType() const
static TrainingConfiguration2Ptr Manufacture(const KKStr &_className, const KKStr &_configFileName, bool _validateDirectories, RunLog &_log)
TrainingConfiguration2(MLClassListPtr _mlClasses, FileDescPtr _fileDesc, ModelParamPtr _modelParameters, RunLog &_log)
Creates a configuration file using the parameters specified in '_modelParameters'; does not read from...
kkint32 ImagesPerClass() const
kkint32 Number_of_rounds() const
TrainingConfiguration2 * TrainingConfiguration2Ptr
static ModelTypes ModelTypeFromStr(const KKStr &_modelTypeStr)
MLClassListPtr ExtractListOfClassesForAGivenHierarchialLevel(kkuint32 level) const
FeatureVectorList * FeatureVectorListPtr
XmlTokenPtr ReadXMLBaseToken(XmlTokenPtr t, VolConstBool &cancelFlag, RunLog &log)
void KernalType(SVM_KernalType _kernalType)
TrainingClass * TrainingClassPtr
void NumOfRounds(kkint32 _numOfRounds)
XmlElementTemplate< TrainingConfiguration2 > XmlElementTrainingConfiguration2
void C_Param(MLClassPtr class1, MLClassPtr class2, double cParam)
void EmptyTrainingClasses()
Removes all training classes from the configuration; example use would be to remove all classes and t...
FactoryFVProducer * FactoryFVProducerPtr
kkint32 NumOfFeaturesAfterEncoding(RunLog &log) const
const KKStr & ConfigFileNameSpecified() const
void Gamma(double _gamma)
FactoryFVProducerPtr FvFactoryProducer(RunLog &log) const
virtual void Save(const KKStr &fileName) const
volatile const bool VolConstBool