KSquare Utilities
KKMLL::TrainingConfiguration2 Class Reference

#include <TrainingConfiguration2.h>

+ Inheritance diagram for KKMLL::TrainingConfiguration2:

Classes

class  Factory
 

Public Types

typedef Model::ModelTypes ModelTypes
 
typedef TrainingConfiguration2 const TrainingConfiguration2Const
 
typedef TrainingConfiguration2ConstTrainingConfiguration2ConstPtr
 
typedef TrainingConfiguration2TrainingConfiguration2Ptr
 

Public Member Functions

 TrainingConfiguration2 ()
 
 TrainingConfiguration2 (const TrainingConfiguration2 &tc)
 
 TrainingConfiguration2 (MLClassListPtr _mlClasses, FactoryFVProducerPtr _fvFactoryProducer, const KKStr &_parameterStr, RunLog &_log)
 Use this one if you want to create a default Configuration object. More...
 
 TrainingConfiguration2 (MLClassListPtr _mlClasses, FileDescPtr _fileDesc, const KKStr &_parameterStr, RunLog &_log)
 Use this one if you want to create a default Configuration object. More...
 
 TrainingConfiguration2 (MLClassListPtr _mlClasses, FileDescPtr _fileDesc, ModelParamPtr _modelParameters, RunLog &_log)
 Creates a configuration file using the parameters specified in '_modelParameters'; does not read from a configuration file. More...
 
virtual ~TrainingConfiguration2 ()
 
float A_Param () const
 
void A_Param (float _aParam)
 
void AddATrainingClass (TrainingClassPtr _trainClass)
 Adds specified Training Class to list taking ownership of it. More...
 
void AddATrainingClass (MLClassPtr _newClass)
 Will assume that images for this class will be saved off the RootDirectory using its own name for the subdirectory name. More...
 
float AvgNumOfFeatures () const
 
float AvgNumOfFeatures (FeatureVectorListPtr trainExamples) const
 
double C_Param () const
 
double C_Param (MLClassPtr class1, MLClassPtr class2) const
 
void C_Param (double _CCC)
 
void C_Param (MLClassPtr class1, MLClassPtr class2, double cParam)
 
const KKStrConfigFileNameSpecified () const
 
const KKStrConfigRootName () const
 
virtual FactoryFVProducerPtr DefaultFeatureVectorProducer (RunLog &runLog) const
 
KKStr DirectoryPathForClass (MLClassPtr mlClass) const
 Fully expanded directory path for specified class. More...
 
virtual TrainingConfiguration2Ptr Duplicate () const
 
void EmptyTrainingClasses ()
 Removes all training classes from the configuration; example use would be to remove all classes and then add the two needed by a Binary-Class-Pair classifier. More...
 
SVM_EncodingMethod EncodingMethod () const
 
void EncodingMethod (SVM_EncodingMethod _encodingMethod)
 
kkint32 ExamplesPerClass () const
 
void ExamplesPerClass (kkint32 _examplesPerClass)
 
MLClassListPtr ExtractClassList () const
 
MLClassListPtr ExtractFullHierachyOfClasses () const
 
MLClassListPtr ExtractListOfClassesForAGivenHierarchialLevel (kkuint32 level) const
 
virtual KKStr FactoryName () const
 
FileDescPtr FileDesc () const
 
FactoryFVProducerPtr FvFactoryProducer (RunLog &log) const
 
bool FvFactoryProducerSpecified () const
 
double Gamma () const
 
void Gamma (double _gamma)
 
TrainingConfiguration2Ptr GenerateAConfiguraionForAHierarchialLevel (kkuint32 level, RunLog &log) const
 
BinaryClassParmsPtr GetBinaryClassParms (MLClassPtr class1, MLClassPtr class2)
 
FeatureNumList GetFeatureNums () const
 
FeatureNumList GetFeatureNums (MLClassPtr class1, MLClassPtr class2)
 Returns features selected for the specified class-pairIf none were specified for that pair will return global feature nums. More...
 
const BinaryClassParmsPtr GetParamtersToUseFor2ClassCombo (MLClassPtr class1, MLClassPtr class2) const
 
kkint32 ImagesPerClass () const
 
void ImagesPerClass (kkint32 _imagesPerClass)
 
SVM_KernalType KernalType () const
 
void KernalType (SVM_KernalType _kernalType)
 
virtual void Load (const KKStr &_configFileName, bool _validateDirectories, RunLog &log)
 
FeatureVectorListPtr LoadFeatureDataFromTrainingLibraries (KKB::DateTime &latestImageTimeStamp, bool &changesMadeToTrainingLibraries, VolConstBool &cancelFlag, RunLog &log)
 Load training data from the training library directories. More...
 
FeatureVectorListPtr LoadOtherClasssExamples (RunLog &runLog)
 
TrainingClassPtr LocateByMLClassName (const KKStr &className)
 
SVM_MachineType MachineType () const
 
void MachineType (SVM_MachineType _machineType)
 
MLClassListPtr MlClasses () const
 
Model::ModelTypes ModelingMethod () const
 
KKStr ModelParameterCmdLine () const
 
ModelParamPtr ModelParameters () const
 
void ModelParameters (ModelParamPtr _modelParameters)
 
Model::ModelTypes ModelType () const
 
KKStr ModelTypeStr () const
 
MLClassPtr NoiseMLClass () const
 
const TrainingClassPtr NoiseTrainingClass () const
 
bool NormalizeNominalFeatures ()
 
kkint32 Number_of_rounds () const
 
void Number_of_rounds (kkint32 _number_of_rounds)
 
kkuint32 NumHierarchialLevels () const
 
kkint32 NumOfFeaturesAfterEncoding (RunLog &log) const
 
kkint32 NumOfRounds () const
 
void NumOfRounds (kkint32 _numOfRounds)
 
MLClassPtr OtherClass () const
 
virtual void ReadXML (XmlStream &s, XmlTagConstPtr tag, VolConstBool &cancelFlag, RunLog &log)
 
const KKStrRootDir () const
 The root directory where Training library images are stored. More...
 
void RootDir (const KKStr &_rootDir)
 
KKStr RootDirExpanded () const
 
virtual void Save (const KKStr &fileName) const
 
virtual void Save (std::ostream &o) const
 
SVM_SelectionMethod SelectionMethod () const
 
void SelectionMethod (SVM_SelectionMethod _selectionMethod)
 
void SetBinaryClassFields (MLClassPtr class1, MLClassPtr class2, const SVM233::svm_parameter &_param, const FeatureNumList &_features, float _weight)
 
void SetFeatureNums (const FeatureNumList &features)
 
void SetFeatureNums (MLClassPtr class1, MLClassPtr class2, const FeatureNumList &_features, float _weight=-1)
 
void SetModelParameters (ModelParamPtr _svmParanters, kkint32 _examplesPerClass)
 
void SetTrainingClasses (TrainingClassListPtr _trainingClasses)
 
TrainingConfiguration2ListPtr SubClassifiers () const
 
const SVMparamSVMparamREF (RunLog &log) const
 
const TrainingClassListTrainingClasses () const
 
void WriteXML (const KKStr &varName, std::ostream &o) const
 
- Public Member Functions inherited from KKB::Configuration
 Configuration (const KKB::KKStr &_fileName, RunLog &_log)
 
 Configuration ()
 
 Configuration (const Configuration &c)
 
virtual ~Configuration ()
 
const KKB::KKStrFileName () const
 
const VectorKKStrFormatErrors () const
 
void FormatErrorsAdd (kkint32 lineNum, const KKStr &error)
 
void FormatErrorsClear ()
 Call this to clear all format error messages. More...
 
const VectorIntFormatErrorsLineNums () const
 
VectorKKStr FormatErrorsWithLineNumbers () const
 
bool FormatGood () const
 
void FormatGood (bool _formatGood)
 
void GetSetting (const char *sectiopnName, kkint32 settingNum, KKStrConstPtr &name, KKStrConstPtr &value, kkint32 &lineNum)
 
virtual void Load (const KKB::KKStr &_fileName, RunLog &_log)
 
void LoadFile (RunLog &log)
 
virtual kkint32 MemoryConsumedEstimated () const
 
kkint32 NumOfSections ()
 
kkint32 NumOfSettings (const KKB::KKStr &sectionName) const
 
kkint32 NumOfSettings (kkint32 sectionNum) const
 Returns number of settings for the specified section,. More...
 
void PrintFormatErrors (std::ostream &o)
 
bool SectionDefined (const KKB::KKStr &sectionName) const
 Returns true if the section is defined. More...
 
kkint32 SectionLineNum (kkint32 sectionNum) const
 
KKStrConstPtr SectionName (kkint32 sectionNum) const
 Returns the name of the section for specified index, if index not defined will return NULL. More...
 
kkint32 SectionNum (const KKB::KKStr &sectionName) const
 
KKStrConstPtr SettingName (const KKB::KKStr &sectionName, kkint32 settingNum) const
 
KKStrConstPtr SettingName (kkint32 sectionNum, kkint32 settingNum) const
 
KKStrConstPtr SettingValue (const KKB::KKStr &sectionName, const KKB::KKStr &settingName, kkint32 &lineNum) const
 
KKStrConstPtr SettingValue (kkint32 sectionNum, const KKB::KKStr &settingName, kkint32 &lineNum) const
 
KKStrConstPtr SettingValue (kkint32 sectionNum, kkint32 settingNum, kkint32 &lineNum) const
 
KKStr SettingValueToStr (const KKB::KKStr &sectionName, const KKB::KKStr &settingName, kkint32 &lineNum) const
 
KKStr SettingValueToStr (kkint32 sectionNum, const KKB::KKStr &settingName, kkint32 &lineNum) const
 

Static Public Member Functions

static bool ConfigFileExists (const KKStr &_configFileName)
 
static TrainingConfiguration2CreateFromDirectoryStructure (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. More...
 
static TrainingConfiguration2CreateFromFeatureVectorList (FeatureVectorList &_examples, FileDescPtr _fileDesc, const KKStr &_parameterStr, RunLog &_log)
 
static FactoryFactoryInstace ()
 
static KKStr GetEffectiveConfigFileName (const KKStr &configFileName)
 Determine the correct configuration file name. More...
 
static TrainingConfiguration2Ptr Manufacture (const KKStr &_className, const KKStr &_configFileName, bool _validateDirectories, RunLog &_log)
 
static ModelTypes ModelTypeFromStr (const KKStr &_modelTypeStr)
 
static KKStr ModelTypeToStr (ModelTypes _modelType)
 
static void RegisterFatory (const KKStr &className, Factory *factory)
 

Static Public Attributes

static FactoryfactoryInstace = NULL
 

Protected Member Functions

void BuildTrainingClassListFromDirectoryStructure (const KKStr &_subDir, bool &_successful, KKStr &_errorMessage, RunLog &_log)
 
XmlTokenPtr ReadXMLBaseToken (XmlTokenPtr t, VolConstBool &cancelFlag, RunLog &log)
 
void ReadXMLPost (VolConstBool &cancelFlag, RunLog &log)
 
void WriteXMLFields (std::ostream &o) const
 To be used by both Base Class and Derived classes to write fields that are specific to 'TrainingConfiguration2'. More...
 

Detailed Description

Definition at line 54 of file TrainingConfiguration2.h.

Member Typedef Documentation

Constructor & Destructor Documentation

TrainingConfiguration2::TrainingConfiguration2 ( )

Definition at line 102 of file TrainingConfiguration2.cpp.

References KKB::Configuration::Configuration(), KKB::KKStr::KKStr(), KKMLL::Model::Null, and TrainingConfiguration2().

Referenced by KKMLL::TrainingProcess2::CreateTrainingProcessForLevel(), KKMLL::TrainingConfiguration2::Factory::Manufacture(), KKMLL::FactoryFVProducer::ManufacturTrainingConfiguration(), and TrainingConfiguration2().

102  :
103  Configuration (),
104 
105  configFileNameSpecified (),
106  configRootName (),
107  fileDesc (NULL),
108  fvFactoryProducer (NULL),
109  fvFactoryProducerSpecified (false),
110  mlClasses (NULL),
111  mlClassesWeOwnIt (false),
112  modelingMethod (Model::ModelTypes::Null),
113  examplesPerClass (0),
114  modelParameters (NULL),
115  noiseMLClass (NULL),
116  noiseTrainingClass (NULL),
117  otherClass (NULL),
118  otherClassLineNum (-1),
119  rootDir (),
120  rootDirExpanded (),
121  subClassifiers (NULL),
122  subClassifierNameList (NULL),
123  trainingClasses ("", true),
124  validateDirectories (true)
125 {
126 }
TrainingConfiguration2::TrainingConfiguration2 ( const TrainingConfiguration2 tc)

Definition at line 364 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::Duplicate(), KKB::KKStr::KKStr(), KKMLL::MLClassList::MLClassList(), TrainingConfiguration2(), and KKMLL::TrainingConfiguration2List::TrainingConfiguration2List().

Referenced by Duplicate(), GenerateAConfiguraionForAHierarchialLevel(), and TrainingConfiguration2().

364  :
365  Configuration (tc),
366  configFileNameSpecified (tc.configFileNameSpecified),
367  configRootName (tc.configRootName),
368  fileDesc (tc.fileDesc),
369  fvFactoryProducer (tc.fvFactoryProducer),
370  fvFactoryProducerSpecified (tc.fvFactoryProducerSpecified),
371  mlClasses (NULL),
372  mlClassesWeOwnIt (false),
373  modelingMethod (tc.modelingMethod),
374  examplesPerClass (tc.examplesPerClass),
375  modelParameters (NULL),
376  noiseMLClass (tc.noiseMLClass),
377  noiseTrainingClass (tc.noiseTrainingClass),
378  otherClass (tc.otherClass),
379  otherClassLineNum (tc.otherClassLineNum),
380  rootDir (tc.rootDir),
381  rootDirExpanded (tc.rootDirExpanded),
382  subClassifiers (NULL),
383  subClassifierNameList (NULL),
384  trainingClasses (tc.rootDir, true),
385  validateDirectories (tc.validateDirectories)
386 {
387  {
388  kkint32 x;
389 
390  for (x = 0; x < tc.trainingClasses.QueueSize (); x++)
391  {
392  TrainingClassPtr trainingClass = tc.trainingClasses.IdxToPtr (x);
393  trainingClasses.PushOnBack (new TrainingClass (*trainingClass));
394  }
395  }
396 
397  if (tc.mlClasses)
398  {
399  mlClasses = new MLClassList (*tc.mlClasses);
400  mlClassesWeOwnIt = true;
401  }
402 
403  if (tc.modelParameters)
404  modelParameters = tc.modelParameters->Duplicate ();
405 
406  if (tc.subClassifiers)
407  {
408  subClassifiers = new TrainingConfiguration2List (true);
410  for (idx = tc.subClassifiers->begin (); idx != tc.subClassifiers->end (); ++idx)
411  {
412  TrainingConfiguration2Ptr subClassifier = *idx;
413  subClassifiers->PushOnBack (new TrainingConfiguration2 (*subClassifier));
414  }
415  }
416 }
__int32 kkint32
Definition: KKBaseTypes.h:88
std::vector< TrainingConfiguration2 * >::const_iterator const_iterator
Definition: KKQueue.h:89
EntryPtr IdxToPtr(kkuint32 idx) const
Definition: KKQueue.h:732
virtual ModelParamPtr Duplicate() const =0
virtual void PushOnBack(EntryPtr _entry)
Definition: KKQueue.h:398
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
kkint32 QueueSize() const
Definition: KKQueue.h:313
Maintains a list of MLClass instances.
Definition: MLClass.h:233
TrainingConfiguration2::TrainingConfiguration2 ( MLClassListPtr  _mlClasses,
FactoryFVProducerPtr  _fvFactoryProducer,
const KKStr _parameterStr,
RunLog _log 
)

Use this one if you want to create a default Configuration object.

Parameters
[in]_mlClassesWill make copy of list of MLClasses and NOT take ownership.
[in]_fvFactoryProducerIf NULL will default to "GrayScaleImagesFVProducerFactory".
[in]_parameterStrSting with Machine Learning Parameters.
[in]_logWhere to send logging messages to.

Definition at line 172 of file TrainingConfiguration2.cpp.

References KKB::Configuration::Configuration(), DefaultFeatureVectorProducer(), KKMLL::FeatureNumList::FeatureNumList(), KKMLL::FactoryFVProducer::FileDesc(), KKB::KKStr::KKStr(), KKMLL::MLClassList::MLClassList(), KKMLL::MLClass::Name(), KKMLL::Model::Null, KKMLL::Model::OldSVM, KKMLL::FeatureNumList::SetAllFeatures(), KKMLL::TrainingClass::TrainingClass(), TrainingConfiguration2(), and KKMLL::ModelParam::ValidParam().

Referenced by CreateFromDirectoryStructure(), and TrainingConfiguration2().

176  :
177  Configuration (),
178  configFileNameSpecified (""),
179  configRootName (),
180  fileDesc (NULL),
181  fvFactoryProducer (_fvFactoryProducer),
182  fvFactoryProducerSpecified (true),
183  modelingMethod (Model::ModelTypes::Null),
184  mlClasses (NULL),
185  mlClassesWeOwnIt (false),
186  examplesPerClass (0),
187  modelParameters (NULL),
188  noiseMLClass (NULL),
189  noiseTrainingClass (NULL),
190  otherClass (NULL),
191  otherClassLineNum (-1),
192  rootDir (),
193  rootDirExpanded (),
194  subClassifiers (NULL),
195  subClassifierNameList (NULL),
196  trainingClasses ("", true),
197  validateDirectories (false)
198 {
199  if (!fvFactoryProducer)
200  fvFactoryProducer = DefaultFeatureVectorProducer (_log);
201  fileDesc = fvFactoryProducer->FileDesc ();
202 
203  if (_mlClasses)
204  mlClasses = new MLClassList (*_mlClasses);
205  else
206  mlClasses = new MLClassList ();
207 
208  mlClassesWeOwnIt = true;
209 
210  {
212  for (idx = mlClasses->begin (); idx != mlClasses->end (); idx++)
213  {
214  MLClassPtr mlClass = *idx;
215  VectorKKStr directories;
216  TrainingClassPtr tc = new TrainingClass (directories, mlClass->Name (), 1.0f, 1.0f, NULL, *mlClasses);
217  trainingClasses.PushOnBack (tc);
218  }
219  }
220 
221  if (modelingMethod == Model::ModelTypes::Null)
222  modelingMethod = Model::ModelTypes::OldSVM;
223 
224  {
225  examplesPerClass = int32_max;
226  FeatureNumList selectedFeatures (fileDesc);
227  selectedFeatures.SetAllFeatures (fileDesc);
228  CreateModelParameters (_parameterStr, selectedFeatures, 1, 1, 1, _log);
229  if (!modelParameters || (!modelParameters->ValidParam ()))
230  {
231  _log.Level (-1) << endl
232  << "TrainingConfiguration2 ***ERROR*** Invalid Parameters." << endl
233  << " Parameters[" << _parameterStr << "]" << endl
234  << endl;
235  FormatGood (false);
236  }
237  }
238 }
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
std::vector< MLClass * >::iterator iterator
Definition: KKQueue.h:88
Keeps track of selected features.
Represents a "Class" in the Machine Learning Sense.
Definition: MLClass.h:52
RunLog & Level(kkint32 _level)
Definition: RunLog.cpp:220
virtual FactoryFVProducerPtr DefaultFeatureVectorProducer(RunLog &runLog) const
virtual void PushOnBack(EntryPtr _entry)
Definition: KKQueue.h:398
bool FormatGood() const
Definition: Configuration.h:64
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
Maintains a list of MLClass instances.
Definition: MLClass.h:233
#define int32_max
Definition: KKBaseTypes.h:119
virtual FileDescPtr FileDesc() const =0
virtual bool ValidParam() const
Definition: ModelParam.h:117
TrainingConfiguration2::TrainingConfiguration2 ( MLClassListPtr  _mlClasses,
FileDescPtr  _fileDesc,
const KKStr _parameterStr,
RunLog _log 
)

Use this one if you want to create a default Configuration object.

We know what the underlying feature data is from _fileDesc but we do not know how they are computed; that is why we do not provide a "FactoryFVProducer" instance.

Parameters
[in]_mlClassesWill make copy of list of MLClasses and NOT take ownership.
[in]_fileDescDescription of the Feature-Vector fields.
[in]_parameterStrSting with Machine Learning Parameters.
[in]_logWhere to send logging messages to.

Definition at line 242 of file TrainingConfiguration2.cpp.

References KKB::Configuration::Configuration(), KKMLL::FeatureNumList::FeatureNumList(), KKB::KKStr::KKStr(), KKMLL::MLClassList::MLClassList(), KKMLL::MLClass::Name(), KKMLL::Model::Null, KKMLL::Model::OldSVM, KKMLL::FeatureNumList::SetAllFeatures(), KKMLL::TrainingClass::TrainingClass(), TrainingConfiguration2(), and KKMLL::ModelParam::ValidParam().

Referenced by CreateFromFeatureVectorList(), and TrainingConfiguration2().

246  :
247  Configuration (),
248  configFileNameSpecified (""),
249  configRootName (),
250  fileDesc (_fileDesc),
251  fvFactoryProducer (NULL),
252  fvFactoryProducerSpecified (false),
253  mlClasses (NULL),
254  mlClassesWeOwnIt (false),
255  modelingMethod (Model::ModelTypes::Null),
256  examplesPerClass (0),
257  modelParameters (NULL),
258  noiseMLClass (NULL),
259  noiseTrainingClass (NULL),
260  otherClass (NULL),
261  otherClassLineNum (-1),
262  rootDir (),
263  rootDirExpanded (),
264  subClassifiers (NULL),
265  subClassifierNameList (NULL),
266  trainingClasses ("", true),
267  validateDirectories (false)
268 {
269  if (_mlClasses)
270  mlClasses = new MLClassList (*_mlClasses);
271  else
272  mlClasses = new MLClassList ();
273 
274  mlClassesWeOwnIt = true;
275 
276  {
278  for (idx = mlClasses->begin (); idx != mlClasses->end (); idx++)
279  {
280  MLClassPtr mlClass = *idx;
281  VectorKKStr directories;
282  TrainingClassPtr tc = new TrainingClass (directories, mlClass->Name (), 1.0f, 1.0f, NULL, *mlClasses);
283  trainingClasses.PushOnBack (tc);
284  }
285  }
286 
287  if (modelingMethod == Model::ModelTypes::Null)
288  modelingMethod = Model::ModelTypes::OldSVM;
289 
290  {
291  examplesPerClass = int32_max;
292  FeatureNumList selectedFeatures (fileDesc);
293  selectedFeatures.SetAllFeatures (fileDesc);
294  CreateModelParameters (_parameterStr, selectedFeatures, 1, 1, 1, _log);
295  if (!modelParameters || (!modelParameters->ValidParam ()))
296  {
297  _log.Level (-1) << endl
298  << "TrainingConfiguration2 ***ERROR*** Invalid Parameters." << endl
299  << " Parameters[" << _parameterStr << "]" << endl
300  << endl;
301  FormatGood (false);
302  }
303  }
304 }
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
std::vector< MLClass * >::iterator iterator
Definition: KKQueue.h:88
Keeps track of selected features.
Represents a "Class" in the Machine Learning Sense.
Definition: MLClass.h:52
RunLog & Level(kkint32 _level)
Definition: RunLog.cpp:220
virtual void PushOnBack(EntryPtr _entry)
Definition: KKQueue.h:398
bool FormatGood() const
Definition: Configuration.h:64
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
Maintains a list of MLClass instances.
Definition: MLClass.h:233
#define int32_max
Definition: KKBaseTypes.h:119
virtual bool ValidParam() const
Definition: ModelParam.h:117
TrainingConfiguration2::TrainingConfiguration2 ( MLClassListPtr  _mlClasses,
FileDescPtr  _fileDesc,
ModelParamPtr  _modelParameters,
RunLog _log 
)

Creates a configuration file using the parameters specified in '_modelParameters'; does not read from a configuration file.

For each class specified in '_mlClasses' a 'TrainingClass' instance will be created. All feature-numbers will be assumed to be selected and unlimited examples per class will be allowed.

Parameters
[in]_mlClasses
[in]_fileDescDescription of the Feature-Vector fields.
[in]_modelParametersWill take ownership of this instance.
[in]_log

Definition at line 308 of file TrainingConfiguration2.cpp.

References KKB::Configuration::Configuration(), KKMLL::ModelParam::Dual, KKMLL::Model::Dual, KKB::KKStr::KKStr(), KKMLL::ModelParam::KNN, KKMLL::Model::KNN, KKMLL::MLClassList::MLClassList(), KKMLL::ModelParam::ModelParamType(), KKMLL::MLClass::Name(), KKMLL::Model::Null, KKMLL::ModelParam::OldSVM, KKMLL::Model::OldSVM, KKMLL::ModelParam::SvmBase, KKMLL::Model::SvmBase, KKMLL::TrainingClass::TrainingClass(), TrainingConfiguration2(), KKMLL::ModelParam::UsfCasCor, and KKMLL::Model::UsfCasCor.

Referenced by TrainingConfiguration2().

312  :
313  Configuration (),
314  configFileNameSpecified (""),
315  configRootName (""),
316  fileDesc (_fileDesc),
317  fvFactoryProducer (NULL),
318  fvFactoryProducerSpecified (false),
319  mlClasses (NULL),
320  mlClassesWeOwnIt (false),
321  modelingMethod (Model::ModelTypes::Null),
322  examplesPerClass (0),
323  modelParameters (_modelParameters),
324  noiseMLClass (NULL),
325  noiseTrainingClass (NULL),
326  otherClass (NULL),
327  otherClassLineNum (-1),
328  rootDir (),
329  rootDirExpanded (),
330  subClassifiers (NULL),
331  subClassifierNameList (NULL),
332  trainingClasses ("", true),
333  validateDirectories (false)
334 {
335  if (_mlClasses)
336  mlClasses = new MLClassList (*_mlClasses);
337  else
338  mlClasses = new MLClassList ();
339  mlClassesWeOwnIt = true;
340 
341  {
343  for (idx = mlClasses->begin (); idx != mlClasses->end (); idx++)
344  {
345  MLClassPtr mlClass = *idx;
346  VectorKKStr directories;
347  TrainingClassPtr tc = new TrainingClass (directories, mlClass->Name (), 1.0f, 1.0f, NULL, *mlClasses);
348  trainingClasses.PushOnBack (tc);
349  }
350  }
351 
352  switch (_modelParameters->ModelParamType ())
353  {
354  case ModelParam::ModelParamTypes::Dual: modelingMethod = Model::ModelTypes::Dual; break;
355  case ModelParam::ModelParamTypes::KNN: modelingMethod = Model::ModelTypes::KNN; break;
359  }
360 }
std::vector< MLClass * >::iterator iterator
Definition: KKQueue.h:88
Represents a "Class" in the Machine Learning Sense.
Definition: MLClass.h:52
virtual ModelParamTypes ModelParamType() const =0
virtual void PushOnBack(EntryPtr _entry)
Definition: KKQueue.h:398
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
Maintains a list of MLClass instances.
Definition: MLClass.h:233
TrainingConfiguration2::~TrainingConfiguration2 ( )
virtual

Definition at line 420 of file TrainingConfiguration2.cpp.

421 {
422  delete noiseTrainingClass; noiseTrainingClass = NULL;
423  delete modelParameters; modelParameters = NULL;
424  delete subClassifierNameList; subClassifierNameList = NULL;
425  delete subClassifiers; subClassifiers = NULL;
426 
427  if (mlClassesWeOwnIt)
428  {
429  delete mlClasses;
430  mlClasses = NULL;
431  }
432 }

Member Function Documentation

float TrainingConfiguration2::A_Param ( ) const

Definition at line 1054 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::A_Param().

1055 {
1056  if (modelParameters)
1057  return modelParameters->A_Param ();
1058  else
1059  return 0.0f;
1060 }
virtual float A_Param() const
Definition: ModelParam.cpp:172
void TrainingConfiguration2::A_Param ( float  _aParam)

Definition at line 1064 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::A_Param().

1065 {
1066  if (modelParameters)
1067  modelParameters->A_Param (_aParam);
1068 } /* A_Param */
virtual float A_Param() const
Definition: ModelParam.cpp:172
void TrainingConfiguration2::AddATrainingClass ( TrainingClassPtr  _trainClass)

Adds specified Training Class to list taking ownership of it.

Add a Training class to configuration Will take ownership of allocation.

Definition at line 993 of file TrainingConfiguration2.cpp.

Referenced by AddATrainingClass(), and GenerateAConfiguraionForAHierarchialLevel().

994 {
995  trainingClasses.PushOnBack (_trainClass);
996 } /* AddATrainingClass */
virtual void PushOnBack(EntryPtr _entry)
Definition: KKQueue.h:398
void TrainingConfiguration2::AddATrainingClass ( MLClassPtr  _newClass)

Will assume that images for this class will be saved off the RootDirectory using its own name for the subdirectory name.

Will assume that images for this class will be saved off the RootDirectory using its own name for the subdirectory name.

< Weight given to this Class during training

< CountFactor.

< Sub-Classifier.

Definition at line 1004 of file TrainingConfiguration2.cpp.

References AddATrainingClass(), KKMLL::MLClass::Name(), and KKMLL::TrainingClass::TrainingClass().

1005 {
1006  VectorKKStr directories;
1007  TrainingClassPtr tc
1008  = new TrainingClass (directories,
1009  _newClass->Name (),
1010  1.0f, /**< Weight given to this Class during training */
1011  1.0f, /**< CountFactor. */
1012  NULL, /**< Sub-Classifier. */
1013  *mlClasses
1014  );
1015  AddATrainingClass (tc);
1016 }
void AddATrainingClass(TrainingClassPtr _trainClass)
Adds specified Training Class to list taking ownership of it.
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
float TrainingConfiguration2::AvgNumOfFeatures ( ) const

Definition at line 1263 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::AvgMumOfFeatures().

1264 {
1265  if (modelParameters)
1266  return modelParameters->AvgMumOfFeatures ();
1267  return 0.0f;
1268 } /* AvgMumOfFeatures */
virtual float AvgMumOfFeatures() const
Definition: ModelParam.cpp:99
float TrainingConfiguration2::AvgNumOfFeatures ( FeatureVectorListPtr  trainExamples) const

Definition at line 1272 of file TrainingConfiguration2.cpp.

References KKMLL::SVMparam::AvgNumOfFeatures().

1273 {
1274  const SVMparamPtr param = SVMparamToUse ();
1275  if (param)
1276  return param->AvgNumOfFeatures (trainExamples);
1277  else
1278  return 0.0f;
1279 }
This class encapsulates are the information necessary to build a SVMModel class.
Definition: SVMparam.h:74
float AvgNumOfFeatures(FeatureVectorListPtr trainExamples) const
Returns back the class weighted average number of features per training example.
Definition: SVMparam.cpp:508
void TrainingConfiguration2::BuildTrainingClassListFromDirectoryStructure ( const KKStr _subDir,
bool &  _successful,
KKStr _errorMessage,
RunLog _log 
)
protected

Definition at line 877 of file TrainingConfiguration2.cpp.

References KKB::KKStr::Concat(), KKMLL::TrainingClassList::DuplicateListAndContents(), EmptyTrainingClasses(), KKMLL::TrainingClass::ExpandedDirectory(), KKMLL::TrainingClass::FeatureFileName(), ImagesPerClass(), KKMLL::TrainingClassList::LocateByDirectory(), KKMLL::TrainingClass::MLClass(), ModelParameters(), KKMLL::ModelParamOldSVM::ModelParamOldSVM(), KKMLL::ModelParamOldSVM::ParseCmdLine(), and TrainingClasses().

Referenced by CreateFromDirectoryStructure().

882 {
883  _log.Level (10) << "TrainingConfiguration2::BuildTrainingClassListFromDirectoryStructure" << endl
884  << " Feature Data from SubDir[" << _subDir << "]." << endl
885  << endl;
886 
887  _successful = true;
888 
889  if (ModelParameters () == NULL)
890  {
891  bool _validFormat = true;
892  KKStr svmParameterStr = "-s 0 -n 0.11 -t 2 -g 0.01507 -c 12 -u 100 -up -mt OneVsOne -sm P";
893 
894  ModelParamOldSVMPtr oldSVMparameters = new ModelParamOldSVM ();
895  oldSVMparameters->ParseCmdLine (svmParameterStr, _validFormat, _log);
896  ModelParameters (oldSVMparameters);
897  ImagesPerClass (1000);
898  delete oldSVMparameters;
899  oldSVMparameters = NULL;
900  }
901 
903 
905 
906  if (mlClasses)
907  {
908  while (mlClasses->QueueSize () > 1)
909  mlClasses->PopFromBack ();
910  }
911 
912  KKStr subDirUnderRoot = "";
913  BuildTrainingClassListFromDirectoryEntry (_subDir,
914  subDirUnderRoot,
915  _successful,
916  _errorMessage,
917  _log
918  );
919 
920  {
921  // We can now update the traningClasses found with that which is in origTraniningClasses.
923 
924  for (idx = trainingClasses.begin (); idx != trainingClasses.end (); idx++)
925  {
926  TrainingClassPtr tc = *idx;
927 
928  // I am not sure about this line. Might need to use rootDir from original configuration file.
929  TrainingClassPtr origTC = origTraniningClasses->LocateByDirectory (tc->ExpandedDirectory (_subDir, 0));
930  if (origTC)
931  {
932  tc->MLClass (origTC->MLClass ());
933  tc->FeatureFileName (origTC->FeatureFileName ());
934  }
935  }
936  }
937 
938  delete origTraniningClasses;
939  origTraniningClasses = NULL;
940 } /* BuildTrainingClassListFromDirectoryStructure */
const KKStr & FeatureFileName() const
Definition: TrainingClass.h:69
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
std::vector< TrainingClass * >::iterator iterator
Definition: KKQueue.h:88
TrainingClassPtr LocateByDirectory(const KKStr &directory)
RunLog & Level(kkint32 _level)
Definition: RunLog.cpp:220
KKStr ExpandedDirectory(const KKStr &rootDir, kkuint32 idx)
const TrainingClassList & TrainingClasses() const
ModelParamPtr ModelParameters() const
const MLClassPtr MLClass() const
Definition: TrainingClass.h:70
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
virtual MLClassPtr PopFromBack()
Definition: MLClass.cpp:768
kkint32 QueueSize() const
Definition: KKQueue.h:313
void ParseCmdLine(KKStr _cmdLineStr, bool &_validFormat, RunLog &_log)
void EmptyTrainingClasses()
Removes all training classes from the configuration; example use would be to remove all classes and t...
TrainingClassList * DuplicateListAndContents() const
double TrainingConfiguration2::C_Param ( ) const

Definition at line 1090 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::C_Param().

1091 {
1092  if (modelParameters)
1093  return modelParameters->C_Param ();
1094  else
1095  return 0.0;
1096 }
virtual double C_Param() const
Definition: ModelParam.cpp:177
double TrainingConfiguration2::C_Param ( MLClassPtr  class1,
MLClassPtr  class2 
) const

Definition at line 1213 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParamOldSVM::C_Param().

1216 {
1217  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1218  if (oldSVMparms)
1219  return oldSVMparms->C_Param (class1, class2);
1220  else
1221  return 0.0;
1222 }
virtual double C_Param() const
void TrainingConfiguration2::C_Param ( double  _CCC)

Definition at line 1100 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::C_Param().

1101 {
1102  if (modelParameters)
1103  modelParameters->C_Param (_CCC);
1104 }
virtual double C_Param() const
Definition: ModelParam.cpp:177
void TrainingConfiguration2::C_Param ( MLClassPtr  class1,
MLClassPtr  class2,
double  cParam 
)

Definition at line 1226 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParamOldSVM::C_Param().

1230 {
1231  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1232  if (oldSVMparms)
1233  oldSVMparms->C_Param (class1, class2, cParam);
1234 } /* C_Param */
virtual double C_Param() const
bool TrainingConfiguration2::ConfigFileExists ( const KKStr _configFileName)
static

Definition at line 2296 of file TrainingConfiguration2.cpp.

References KKB::KKStr::Concat(), GetEffectiveConfigFileName(), and KKB::osFileExists().

Referenced by KKMLL::ModelDual::TrainModel().

2297 {
2298  KKStr effectiveName = GetEffectiveConfigFileName (_configFileName);
2299  return osFileExists (effectiveName);
2300 } /* ConfigFileExists */
static KKStr GetEffectiveConfigFileName(const KKStr &configFileName)
Determine the correct configuration file name.
bool osFileExists(const KKStr &_fileName)
Definition: OSservices.cpp:568
const KKStr& KKMLL::TrainingConfiguration2::ConfigFileNameSpecified ( ) const
inline

Definition at line 186 of file TrainingConfiguration2.h.

Referenced by KKMLL::TrainingProcess2::BuildTrainingProcess(), and KKMLL::TrainingProcess2::SaveTrainingProcess().

186 {return configFileNameSpecified;}
const KKStr& KKMLL::TrainingConfiguration2::ConfigRootName ( ) const
inline
TrainingConfiguration2Ptr TrainingConfiguration2::CreateFromDirectoryStructure ( const KKStr _existingConfigFileName,
const KKStr _subDir,
FactoryFVProducerPtr  _fvFactoryProducer,
RunLog _log,
bool &  _successful,
KKStr _errorMessage 
)
static

Will create a instance using a sub-directory tree to drive the TraningClassList.

for each unique sub-directory entry below it that contains 'bmp' files a TrainingClass' instance will be created using the root-name as the class name. If an existing Config file already exists then parameters will be taken from it otherwise a default configuration will be created.

Parameters
[in]_existingConfigFileNameCaller can specify an existing Configuration file to extract configuration parameters from; if left blank then a configuration file with the same name of the last name in the directory path specified by _subDir will be assumed in the default TraningModel directory. If still no configuration file found then one will be created using default parameters.
[in]_subDirThe root directory entry to the Sub-Directory structure that is to be used to construct training class list from.
[in]_fvFactoryProducerThe FeatureVector computation routines you want to use; if NULL will default.
[in]_log
[out]_successful
[out]_errorMessageWill contain description of errors encountered.

Definition at line 790 of file TrainingConfiguration2.cpp.

References BuildTrainingClassListFromDirectoryStructure(), KKB::KKStr::Concat(), KKB::KKStr::Empty(), KKMLL::GrayScaleImagesFVProducerFactory::Factory(), Gamma(), Load(), KKMLL::FactoryFVProducer::ManufacturTrainingConfiguration(), KKB::KKStr::operator+(), KKB::KKStr::operator=(), KKB::osAddSlash(), KKB::osFileExists(), KKB::osGetRootNameOfDirectory(), RootDir(), Save(), TrainingConfiguration2(), and KKMLL::KKMLVariables::TrainingModelsDir().

797 {
798  _log.Level (10) << "TrainingConfiguration2::CreateFromDirectoryStructure" << endl
799  << " Feature Data from SubDir[" << _subDir << "]." << endl
800  << endl;
801 
802  _successful = true;
803 
804  KKStr directoryConfigFileName = osGetRootNameOfDirectory (_subDir);
805  if (directoryConfigFileName.Empty ())
806  directoryConfigFileName = osAddSlash (KKMLVariables::TrainingModelsDir ()) + "Root.cfg";
807  else
808  directoryConfigFileName = osAddSlash (KKMLVariables::TrainingModelsDir ()) + directoryConfigFileName + ".cfg";
809 
810  TrainingConfiguration2Ptr config = NULL;
811 
812  if (!_existingConfigFileName.Empty ())
813  {
814  if (osFileExists (_existingConfigFileName))
815  {
816  config = _fvFactoryProducer->ManufacturTrainingConfiguration ();
817  config->Load (_existingConfigFileName,
818  false, // false = DO NOT Validate Directories.
819  _log
820  );
821  config->RootDir (_subDir);
822  if (!(config->FormatGood ()))
823  {
824  delete config;
825  config = NULL;
826  }
827  }
828  }
829 
830  if (!config)
831  {
832  if (osFileExists (directoryConfigFileName))
833  {
834  config = _fvFactoryProducer->ManufacturTrainingConfiguration ();
835  config->Load (directoryConfigFileName,
836  false, // false = Do Not Validate Directories.
837  _log
838  );
839 
840  config->RootDir (_subDir);
841  if (!(config->FormatGood ()))
842  {
843  delete config;
844  config = NULL;
845  }
846  }
847  }
848 
849  if (!config)
850  {
851  if (_fvFactoryProducer != NULL)
852  _fvFactoryProducer = GrayScaleImagesFVProducerFactory::Factory (&_log);
853  config = new TrainingConfiguration2 (NULL, // Not supplying the MLClassList
854  _fvFactoryProducer,
855  "=-s 0 -n 0.11 -t 2 -g 0.01507 -c 12 -u 100 -up -mt OneVsOne -sm P",
856  _log
857  );
858  config->RootDir (_subDir);
859  }
860 
862  _successful,
863  _errorMessage,
864  _log
865  );
866 
867  if (config->Gamma () == 0.0)
868  config->Gamma (0.01507);
869 
870  config->Save (directoryConfigFileName);
871 
872  return config;
873 } /* CreateFromDirectoryTree */
virtual void Load(const KKStr &_configFileName, bool _validateDirectories, RunLog &log)
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
static KKStr TrainingModelsDir()
void BuildTrainingClassListFromDirectoryStructure(const KKStr &_subDir, bool &_successful, KKStr &_errorMessage, RunLog &_log)
RunLog & Level(kkint32 _level)
Definition: RunLog.cpp:220
KKB::KKStr osAddSlash(const KKStr &fileSpec)
bool Empty() const
Definition: KKStr.h:241
KKStr osGetRootNameOfDirectory(KKStr fullDirName)
bool FormatGood() const
Definition: Configuration.h:64
const KKStr & RootDir() const
The root directory where Training library images are stored.
virtual TrainingConfiguration2Ptr ManufacturTrainingConfiguration() const
Returns a &#39;TrainingConfiguration2&#39; derived instance.
bool osFileExists(const KKStr &_fileName)
Definition: OSservices.cpp:568
static GrayScaleImagesFVProducerFactory * Factory(RunLog *runLog)
Returns instance of "GrayScaleImagesFVProducerFactory" that is registered with "FactoryFVProducer::Re...
virtual void Save(const KKStr &fileName) const
TrainingConfiguration2Ptr TrainingConfiguration2::CreateFromFeatureVectorList ( FeatureVectorList _examples,
FileDescPtr  _fileDesc,
const KKStr _parameterStr,
RunLog _log 
)
static

Definition at line 758 of file TrainingConfiguration2.cpp.

References KKMLL::FeatureVectorList::AllFeatures(), KKB::KKStr::Concat(), KKB::KKStr::Empty(), KKMLL::FeatureVectorList::ExtractListOfClasses(), KKMLL::FeatureVectorList::FileDesc(), KKB::KKStr::operator=(), SetFeatureNums(), KKMLL::MLClassList::SortByName(), and TrainingConfiguration2().

763 {
764  _log.Level (10) << "TrainingConfiguration2::CreateFromFeatureVectorList" << endl;
765  FileDescPtr fileDesc = _examples.FileDesc ();
766 
767  MLClassListPtr mlClasses = _examples.ExtractListOfClasses ();
768  mlClasses->SortByName ();
769  KKStr parameterStr = _parameterStr;
770  if (parameterStr.Empty ())
771  parameterStr = "-m 200 -s 0 -n 0.11 -t 2 -g 0.024717 -c 10 -u 100 -up -mt OneVsOne -sm P";
772 
774  = new TrainingConfiguration2 (mlClasses,
775  _fileDesc,
776  parameterStr,
777  _log
778  );
779 
780  config->SetFeatureNums (_examples.AllFeatures ());
781 
782  delete mlClasses; mlClasses = NULL;
783 
784  return config;
785 } /* CreateFromFeatureVectorList */
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
Provides a detailed description of the attributes of a dataset.
Definition: FileDesc.h:72
MLClassListPtr ExtractListOfClasses() const
FeatureNumList AllFeatures()
Will return a FeatureNumList instance with all features selected.
void SetFeatureNums(const FeatureNumList &features)
const FileDescPtr FileDesc() const
RunLog & Level(kkint32 _level)
Definition: RunLog.cpp:220
bool Empty() const
Definition: KKStr.h:241
Maintains a list of MLClass instances.
Definition: MLClass.h:233
FactoryFVProducerPtr TrainingConfiguration2::DefaultFeatureVectorProducer ( RunLog runLog) const
virtual

Definition at line 452 of file TrainingConfiguration2.cpp.

References KKMLL::GrayScaleImagesFVProducerFactory::Factory().

Referenced by FvFactoryProducer(), ReadXMLPost(), and TrainingConfiguration2().

453 {
455 }
static GrayScaleImagesFVProducerFactory * Factory(RunLog *runLog)
Returns instance of "GrayScaleImagesFVProducerFactory" that is registered with "FactoryFVProducer::Re...
KKStr TrainingConfiguration2::DirectoryPathForClass ( MLClassPtr  mlClass) const

Fully expanded directory path for specified class.

Parameters
mlClassClass that we want to get directory path for training images.
Returns
Returns full patch where images for mlClass are stored; directory path is fully expended.

Definition at line 476 of file TrainingConfiguration2.cpp.

References KKB::KKStr::Concat(), KKB::KKStr::EmptyStr(), KKMLL::TrainingClass::ExpandedDirectory(), and KKMLL::TrainingClass::MLClass().

477 {
479  for (idx = trainingClasses.begin (); idx != trainingClasses.end (); idx++)
480  {
481  const TrainingClassPtr tc = *idx;
482  if (tc->MLClass () == mlClass)
483  return tc->ExpandedDirectory (rootDir, 0);
484  }
485 
486  return KKStr::EmptyStr ();
487 } /* DirectoryPathForClass */
std::vector< TrainingClass * >::const_iterator const_iterator
Definition: KKQueue.h:89
KKStr ExpandedDirectory(const KKStr &rootDir, kkuint32 idx)
const MLClassPtr MLClass() const
Definition: TrainingClass.h:70
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
TrainingConfiguration2Ptr TrainingConfiguration2::Duplicate ( ) const
virtual

Definition at line 436 of file TrainingConfiguration2.cpp.

References TrainingConfiguration2().

Referenced by KKMLL::TrainingProcess2::BuildTrainingProcess().

437 {
438  return new TrainingConfiguration2 (*this);
439 }
void TrainingConfiguration2::EmptyTrainingClasses ( )

Removes all training classes from the configuration; example use would be to remove all classes and then add the two needed by a Binary-Class-Pair classifier.

Definition at line 1974 of file TrainingConfiguration2.cpp.

Referenced by BuildTrainingClassListFromDirectoryStructure(), GenerateAConfiguraionForAHierarchialLevel(), and SetTrainingClasses().

1975 {
1976  while (trainingClasses.QueueSize () > 0)
1977  {
1978  TrainingClassPtr trainingClass = trainingClasses.PopFromBack ();
1979  delete trainingClass;
1980  }
1981 } /* DeleteTrainingClasses */
virtual EntryPtr PopFromBack()
Definition: KKQueue.h:648
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
kkint32 QueueSize() const
Definition: KKQueue.h:313
SVM_EncodingMethod TrainingConfiguration2::EncodingMethod ( ) const

Definition at line 1202 of file TrainingConfiguration2.cpp.

References KKMLL::SVMparam::EncodingMethod(), and KKMLL::NoEncoding.

1203 {
1204  const SVMparamPtr param = SVMparamToUse ();
1205  if (param)
1206  return param->EncodingMethod ();
1207  else
1209 } /* EncodingMethod */
SVM_EncodingMethod EncodingMethod() const
Definition: SVMparam.h:143
This class encapsulates are the information necessary to build a SVMModel class.
Definition: SVMparam.h:74
void TrainingConfiguration2::EncodingMethod ( SVM_EncodingMethod  _encodingMethod)

Definition at line 1194 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::EncodingMethod().

1195 {
1196  if (modelParameters)
1197  modelParameters->EncodingMethod ((ModelParam::EncodingMethodType)_encodingMethod);
1198 }
virtual EncodingMethodType EncodingMethod() const
Definition: ModelParam.h:111
kkint32 TrainingConfiguration2::ExamplesPerClass ( ) const

Definition at line 1335 of file TrainingConfiguration2.cpp.

Referenced by KKMLL::CrossValidation::CrossValidation(), and ImagesPerClass().

1336 {
1337  return examplesPerClass;
1338 } /* ImagesPerClass */
void TrainingConfiguration2::ExamplesPerClass ( kkint32  _examplesPerClass)

Definition at line 1328 of file TrainingConfiguration2.cpp.

Referenced by ImagesPerClass().

1329 {
1330  examplesPerClass = _examplesPerClass;
1331 }
MLClassListPtr TrainingConfiguration2::ExtractClassList ( ) const

Constructs new list of classes that caller will own.

Definition at line 701 of file TrainingConfiguration2.cpp.

References KKMLL::MLClassList::MLClassList(), and KKMLL::MLClassList::SortByName().

Referenced by KKMLL::TrainingProcess2::CreateTrainingProcessForLevel().

702 {
704 
705  MLClassListPtr classes = new MLClassList ();
706 
707  for (idx = trainingClasses.begin (); idx != trainingClasses.end (); idx++)
708  {
709  TrainingClassPtr tc = *idx;
710 
711  if (classes->PtrToIdx (tc->MLClass ()) < 0)
712  classes->PushOnBack (tc->MLClass ());
713  }
714 
715  classes->SortByName ();
716 
717  return classes;
718 } /* ExtractClassList */
std::vector< TrainingClass * >::const_iterator const_iterator
Definition: KKQueue.h:89
virtual void PushOnBack(MLClassPtr mlClass)
Definition: MLClass.cpp:798
const MLClassPtr MLClass() const
Definition: TrainingClass.h:70
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
kkint32 PtrToIdx(EntryConstPtr _entry) const
Definition: KKQueue.h:761
Maintains a list of MLClass instances.
Definition: MLClass.h:233
MLClassListPtr TrainingConfiguration2::ExtractFullHierachyOfClasses ( ) const

Extracts the list of classes including ones from Sub-Classifiers

Definition at line 722 of file TrainingConfiguration2.cpp.

References ExtractFullHierachyOfClasses(), KKMLL::MLClassList::MLClassList(), KKMLL::MLClassList::SortByName(), and KKMLL::TrainingClass::SubClassifier().

Referenced by KKMLL::TrainingProcess2::ExtractFullHierachyOfClasses(), and ExtractFullHierachyOfClasses().

723 {
725 
726  MLClassListPtr classes = new MLClassList ();
727 
728  for (idx = trainingClasses.begin (); idx != trainingClasses.end (); idx++)
729  {
730  TrainingClassPtr tc = *idx;
731  if (tc->SubClassifier () == NULL)
732  {
733  if (classes->PtrToIdx (tc->MLClass ()) < 0)
734  classes->PushOnBack (tc->MLClass ());
735  }
736  else
737  {
738  MLClassListPtr subClassifierClasses = tc->SubClassifier ()->ExtractFullHierachyOfClasses ();
740  for (idx2 = subClassifierClasses->begin(); idx2 != subClassifierClasses->end (); ++idx2)
741  {
742  MLClassPtr subClass = *idx2;
743  if (classes->PtrToIdx (subClass) < 0)
744  classes->PushOnBack (subClass);
745  }
746  delete subClassifierClasses;
747  subClassifierClasses = NULL;
748  }
749  }
750 
751  classes->SortByName ();
752  return classes;
753 } /* ExtractFullHierachyOfClasses */
std::vector< TrainingClass * >::const_iterator const_iterator
Definition: KKQueue.h:89
Represents a "Class" in the Machine Learning Sense.
Definition: MLClass.h:52
virtual void PushOnBack(MLClassPtr mlClass)
Definition: MLClass.cpp:798
TrainingConfiguration2Ptr SubClassifier() const
Definition: TrainingClass.h:72
const MLClassPtr MLClass() const
Definition: TrainingClass.h:70
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
MLClassListPtr ExtractFullHierachyOfClasses() const
kkint32 PtrToIdx(EntryConstPtr _entry) const
Definition: KKQueue.h:761
Maintains a list of MLClass instances.
Definition: MLClass.h:233
MLClassListPtr TrainingConfiguration2::ExtractListOfClassesForAGivenHierarchialLevel ( kkuint32  level) const

Definition at line 530 of file TrainingConfiguration2.cpp.

References KKMLL::MLClass::MLClassForGivenHierarchialLevel(), and KKMLL::MLClassList::MLClassList().

Referenced by GenerateAConfiguraionForAHierarchialLevel().

531 {
532  MLClassListPtr classes = new MLClassList ();
534 
535  for (idx = trainingClasses.begin (); idx != trainingClasses.end (); idx++)
536  {
537  MLClassPtr ic = (*idx)->MLClass ();
538  MLClassPtr claassForGivenLevel = ic->MLClassForGivenHierarchialLevel (level);
539  if (classes->PtrToIdx (claassForGivenLevel) < 0)
540  classes->AddMLClass (claassForGivenLevel);
541  }
542 
543  return classes;
544 } /* ExtractListOfClassesForAGivenHierarchialLevel */
std::vector< TrainingClass * >::const_iterator const_iterator
Definition: KKQueue.h:89
Represents a "Class" in the Machine Learning Sense.
Definition: MLClass.h:52
kkint32 PtrToIdx(EntryConstPtr _entry) const
Definition: KKQueue.h:761
Maintains a list of MLClass instances.
Definition: MLClass.h:233
virtual void AddMLClass(MLClassPtr _mlClass)
Definition: MLClass.cpp:756
MLClassPtr MLClassForGivenHierarchialLevel(KKB::kkuint16 level) const
Definition: MLClass.cpp:427
TrainingConfiguration2::Factory * TrainingConfiguration2::FactoryInstace ( )
static

Definition at line 2415 of file TrainingConfiguration2.cpp.

References KKB::GlobalGoalKeeper::EndBlock(), KKMLL::TrainingConfiguration2::Factory::Factory(), factoryInstace, RegisterFatory(), and KKB::GlobalGoalKeeper::StartBlock().

2416 {
2417  if (factoryInstace)
2418  return factoryInstace;
2419 
2420  GlobalGoalKeeper::StartBlock ();
2421  factoryInstace = new Factory ();
2422  RegisterFatory ("TrainingConfiguration2", factoryInstace );
2423  GlobalGoalKeeper::EndBlock ();
2424  return factoryInstace;
2425 }
static void RegisterFatory(const KKStr &className, Factory *factory)
virtual KKStr KKMLL::TrainingConfiguration2::FactoryName ( ) const
inlinevirtual

The name of the Factory class that produces an instance of this class.

Definition at line 500 of file TrainingConfiguration2.h.

FileDescPtr KKMLL::TrainingConfiguration2::FileDesc ( ) const
inline

Definition at line 190 of file TrainingConfiguration2.h.

Referenced by KKMLL::NormalizationParms::NormalizationParms().

190 {return fileDesc;}
FactoryFVProducerPtr TrainingConfiguration2::FvFactoryProducer ( RunLog log) const
bool KKMLL::TrainingConfiguration2::FvFactoryProducerSpecified ( ) const
inline

Definition at line 192 of file TrainingConfiguration2.h.

192 {return fvFactoryProducerSpecified;}
double TrainingConfiguration2::Gamma ( ) const

Definition at line 1072 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::Gamma().

Referenced by CreateFromDirectoryStructure().

1073 {
1074  if (modelParameters)
1075  return modelParameters->Gamma ();
1076  else
1077  return 0.0;
1078 } /* Gamma */
virtual double Gamma() const
Definition: ModelParam.cpp:187
void TrainingConfiguration2::Gamma ( double  _gamma)

Definition at line 1082 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::Gamma().

Referenced by CreateFromDirectoryStructure().

1083 {
1084  if (modelParameters)
1085  modelParameters->Gamma (_gamma);
1086 } /* Gamma */
virtual double Gamma() const
Definition: ModelParam.cpp:187
TrainingConfiguration2Ptr TrainingConfiguration2::GenerateAConfiguraionForAHierarchialLevel ( kkuint32  level,
RunLog log 
) const

Definition at line 548 of file TrainingConfiguration2.cpp.

References AddATrainingClass(), KKMLL::TrainingClass::Directories(), EmptyTrainingClasses(), ExtractListOfClassesForAGivenHierarchialLevel(), KKMLL::TrainingClass::MLClass(), KKMLL::MLClass::MLClassForGivenHierarchialLevel(), KKMLL::MLClass::Name(), KKMLL::TrainingClass::TrainingClass(), and TrainingConfiguration2().

Referenced by KKMLL::TrainingProcess2::CreateTrainingProcessForLevel().

551 {
552  log.Level (10) << "TrainingConfiguration2::GenerateAConfiguraionForAHierarchialLevel level[" << level << "]" << endl;
553  TrainingConfiguration2Ptr hierarchialConfig = new TrainingConfiguration2 (*this);
554  hierarchialConfig->EmptyTrainingClasses ();
555 
556  MLClassListPtr hierarchialClassList = ExtractListOfClassesForAGivenHierarchialLevel (level);
557 
559 
560  for (idx = trainingClasses.begin (); idx != trainingClasses.end (); idx++)
561  {
562  const TrainingClassPtr tc = *idx;
564  hierarchialConfig->AddATrainingClass (new TrainingClass (tc->Directories (), ic->Name (), 1.0f, 1.0f, NULL, *hierarchialClassList));
565  }
566 
567  hierarchialConfig->SyncronizeMLClassListWithTrainingClassList ();
568 
569  delete hierarchialClassList;
570  return hierarchialConfig;
571 } /* GenerateAConfiguraionForAHierarchialLevel */
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
void AddATrainingClass(TrainingClassPtr _trainClass)
Adds specified Training Class to list taking ownership of it.
std::vector< TrainingClass * >::const_iterator const_iterator
Definition: KKQueue.h:89
Represents a "Class" in the Machine Learning Sense.
Definition: MLClass.h:52
RunLog & Level(kkint32 _level)
Definition: RunLog.cpp:220
const MLClassPtr MLClass() const
Definition: TrainingClass.h:70
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
Maintains a list of MLClass instances.
Definition: MLClass.h:233
const VectorKKStr & Directories() const
Definition: TrainingClass.h:68
MLClassListPtr ExtractListOfClassesForAGivenHierarchialLevel(kkuint32 level) const
MLClassPtr MLClassForGivenHierarchialLevel(KKB::kkuint16 level) const
Definition: MLClass.cpp:427
void EmptyTrainingClasses()
Removes all training classes from the configuration; example use would be to remove all classes and t...
BinaryClassParmsPtr TrainingConfiguration2::GetBinaryClassParms ( MLClassPtr  class1,
MLClassPtr  class2 
)

if BinaryClass parms exist for the two specified classes will return otherwise NULL.

Definition at line 2382 of file TrainingConfiguration2.cpp.

References KKMLL::SVMparam::GetBinaryClassParms().

2385 {
2386  const SVMparamPtr param = SVMparamToUse ();
2387  if (!param)
2388  return NULL;
2389 
2390  return param->GetBinaryClassParms (class1, class2);
2391 }
BinaryClassParmsPtr GetBinaryClassParms(MLClassPtr class1, MLClassPtr class2)
Definition: SVMparam.cpp:423
This class encapsulates are the information necessary to build a SVMModel class.
Definition: SVMparam.h:74
KKStr TrainingConfiguration2::GetEffectiveConfigFileName ( const KKStr configFileName)
static

Determine the correct configuration file name.

If no extension then add ".cfg" to end of file name.
if Path Provided
{
Return name as submitted with added extension.
}
else
{
a. If file exists in default directory; then return name with default directory path.
b. If file exists in Training Model Directory $(HomeDir) + "\\DataFiles\\TrainingModels"
then return with Training Model Directory.
c. Since not found then we will return name passed in with extension.
}

Definition at line 2259 of file TrainingConfiguration2.cpp.

References KKB::KKStr::Concat(), KKB::KKStr::Empty(), KKB::KKStr::operator+(), KKB::KKStr::operator=(), KKB::osAddSlash(), KKB::osFileExists(), KKB::osGetCurrentDirectory(), KKB::osGetFileExtension(), KKB::osGetPathPartOfFile(), KKB::osGetRootNameWithExtension(), KKB::osRemoveExtension(), and KKMLL::KKMLVariables::TrainingModelsDir().

Referenced by ConfigFileExists(), KKMLL::TrainingProcess2::CreateTrainingProcess(), Load(), KKMLL::TrainingProcess2::LoadExistingTrainingProcess(), and KKMLL::TrainingProcess2::SaveTrainingProcess().

2260 {
2261  if (osFileExists (configFileName))
2262  return configFileName;
2263 
2264  KKStr rootNameEithExtension = osGetRootNameWithExtension (configFileName);
2265  KKStr extension = osGetFileExtension (configFileName);
2266  KKStr path = osGetPathPartOfFile (configFileName);
2267 
2268  KKStr configFileNameWithExtension = configFileName;
2269  if (extension.Empty ())
2270  {
2271  configFileNameWithExtension = osRemoveExtension (configFileName) + ".cfg";
2272  }
2273 
2274  if (!path.Empty ())
2275  {
2276  // Caller is telling us which directory to look in. In this case there is nothing to do
2277  return configFileNameWithExtension;
2278  }
2279 
2280  // See if file exists
2281  KKStr configFileNameInDefaultDirectory = osAddSlash (osGetCurrentDirectory ()) + configFileNameWithExtension;
2282  if (osFileExists (configFileNameInDefaultDirectory))
2283  return configFileNameInDefaultDirectory;
2284 
2285  KKStr configNameInTrainingModelDir = osAddSlash (KKMLVariables::TrainingModelsDir ()) + configFileNameWithExtension;
2286  if (osFileExists (configNameInTrainingModelDir))
2287  {
2288  return configNameInTrainingModelDir;
2289  }
2290 
2291  return configFileNameInDefaultDirectory;
2292 } /* GetEffectiveConfigFileName */
KKStr osRemoveExtension(const KKStr &_fullFileName)
KKStr osGetPathPartOfFile(KKStr fullFileName)
Get the path part of a full file name specification.
static KKStr TrainingModelsDir()
KKStr osGetFileExtension(KKStr fullFileName)
KKB::KKStr osAddSlash(const KKStr &fileSpec)
bool Empty() const
Definition: KKStr.h:241
bool osFileExists(const KKStr &_fileName)
Definition: OSservices.cpp:568
KKStr osGetCurrentDirectory()
Definition: OSservices.cpp:319
KKStr osGetRootNameWithExtension(const KKStr &fullFileName)
FeatureNumList TrainingConfiguration2::GetFeatureNums ( ) const

Definition at line 1302 of file TrainingConfiguration2.cpp.

References KKMLL::FeatureNumList::FeatureNumList(), and KKMLL::ModelParam::SelectedFeatures().

1303 {
1304  if (modelParameters)
1305  {
1306  FeatureNumListConstPtr fnl = modelParameters->SelectedFeatures ();
1307  if (fnl)
1308  return *fnl;
1309  }
1310  if (fileDesc)
1311  return FeatureNumList (fileDesc);
1312  else
1313  return FeatureNumList (1);
1314 } /* GetFeatureNums */
Keeps track of selected features.
virtual FeatureNumListConstPtr SelectedFeatures() const
Definition: ModelParam.h:116
FeatureNumListConst * FeatureNumListConstPtr
FeatureNumList TrainingConfiguration2::GetFeatureNums ( MLClassPtr  class1,
MLClassPtr  class2 
)

Returns features selected for the specified class-pairIf none were specified for that pair will return global feature nums.

Definition at line 1342 of file TrainingConfiguration2.cpp.

References KKMLL::FeatureNumList::AllFeatures(), and KKMLL::ModelParamOldSVM::GetFeatureNums().

1345 {
1346  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1347  if (oldSVMparms)
1348  {
1349  FeatureNumListConstPtr fnl = oldSVMparms->GetFeatureNums (fileDesc, class1, class2);
1350  if (fnl)
1351  return *fnl;
1352  }
1353 
1354  return FeatureNumList::AllFeatures (fileDesc);
1355 } /* GetFeatureNums */
static FeatureNumList AllFeatures(FileDescPtr fileDesc)
Create a FeatureNumList object where all features are selected, except ones that are flagged as Ignor...
FeatureNumListConstPtr GetFeatureNums(FileDescPtr fileDesc, MLClassPtr class1, MLClassPtr class2) const
FeatureNumListConst * FeatureNumListConstPtr
const BinaryClassParmsPtr TrainingConfiguration2::GetParamtersToUseFor2ClassCombo ( MLClassPtr  class1,
MLClassPtr  class2 
) const

Definition at line 2370 of file TrainingConfiguration2.cpp.

References KKMLL::SVMparam::GetParamtersToUseFor2ClassCombo().

2373 {
2374  const SVMparamPtr param = SVMparamToUse ();
2375  if (!param)
2376  return NULL;
2377 
2378  return param->GetParamtersToUseFor2ClassCombo (class1, class2);
2379 } /* BinaryClassParms */
BinaryClassParmsPtr GetParamtersToUseFor2ClassCombo(MLClassPtr class1, MLClassPtr class2)
Definition: SVMparam.cpp:394
This class encapsulates are the information necessary to build a SVMModel class.
Definition: SVMparam.h:74
kkint32 KKMLL::TrainingConfiguration2::ImagesPerClass ( ) const
inline

Definition at line 194 of file TrainingConfiguration2.h.

References ExamplesPerClass().

194 {return ExamplesPerClass ();};
void KKMLL::TrainingConfiguration2::ImagesPerClass ( kkint32  _imagesPerClass)
inline

Definition at line 248 of file TrainingConfiguration2.h.

References ExamplesPerClass().

Referenced by BuildTrainingClassListFromDirectoryStructure().

248 {ExamplesPerClass (_imagesPerClass);}
SVM_KernalType TrainingConfiguration2::KernalType ( ) const

Definition at line 1283 of file TrainingConfiguration2.cpp.

References KKMLL::SVMparam::KernalType(), and KKMLL::Linear.

1284 {
1285  const SVMparamPtr param = SVMparamToUse ();
1286  if (param)
1287  return param->KernalType ();
1288  return SVM_KernalType::Linear;
1289 } /* KernalType */
SVM_KernalType KernalType() const
Definition: SVMparam.h:149
This class encapsulates are the information necessary to build a SVMModel class.
Definition: SVMparam.h:74
void TrainingConfiguration2::KernalType ( SVM_KernalType  _kernalType)

Definition at line 1293 of file TrainingConfiguration2.cpp.

References KKMLL::SVMparam::KernalType().

1294 {
1295  const SVMparamPtr param = SVMparamToUse ();
1296  if (param)
1297  return param->KernalType (_kernalType);
1298 } /* KernalType */
SVM_KernalType KernalType() const
Definition: SVMparam.h:149
This class encapsulates are the information necessary to build a SVMModel class.
Definition: SVMparam.h:74
void TrainingConfiguration2::Load ( const KKStr _configFileName,
bool  _validateDirectories,
RunLog log 
)
virtual

Definition at line 130 of file TrainingConfiguration2.cpp.

References KKB::KKStr::Concat(), GetEffectiveConfigFileName(), KKMLL::MLClassList::MLClassList(), KKB::KKStr::operator=(), and KKB::osGetRootName().

Referenced by CreateFromDirectoryStructure(), KKMLL::TrainingProcess2::CreateTrainingProcessForLevel(), KKMLL::TrainingConfiguration2::Factory::Manufacture(), and KKMLL::ModelDual::TrainModel().

134 {
135  KKStr effectiveConfigName = GetEffectiveConfigFileName (_configFileName);
136 
137  Configuration::Load (effectiveConfigName, log);
138 
139  configFileNameSpecified = _configFileName;
140  configRootName = KKB::osGetRootName (_configFileName);
141  validateDirectories = _validateDirectories;
142  if (!FormatGood ())
143  {
144  log.Level (-1) << endl
145  << "TrainingConfiguration2 ***ERROR*** Format of Configuration File is Invalid." << endl
146  << endl;
147  return;
148  }
149 
150  mlClasses = new MLClassList ();
151  mlClassesWeOwnIt = true;
152 
153  ValidateConfiguration (log);
154  if (examplesPerClass < 1)
155  {
156  log.Level (10) << "TrainingConfiguration2 - examplesPerClass not specified. Defaulting to 1300." << endl;
157  examplesPerClass = 1300;
158  }
159 
160  if (!FormatGood ())
161  log.Level (-1) << endl
162  << "TrainingConfiguration2 ***ERROR*** Format of Configuration File is Invalid." << endl
163  << endl;
164 
165  else if (rootDir.Empty ())
166  DetermineWhatTheRootDirectoryIs ();
167 
168 } /* Load */
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
RunLog & Level(kkint32 _level)
Definition: RunLog.cpp:220
bool Empty() const
Definition: KKStr.h:241
static KKStr GetEffectiveConfigFileName(const KKStr &configFileName)
Determine the correct configuration file name.
bool FormatGood() const
Definition: Configuration.h:64
Maintains a list of MLClass instances.
Definition: MLClass.h:233
KKStr osGetRootName(const KKStr &fullFileName)
FeatureVectorListPtr TrainingConfiguration2::LoadFeatureDataFromTrainingLibraries ( KKB::DateTime latestImageTimeStamp,
bool &  changesMadeToTrainingLibraries,
VolConstBool cancelFlag,
RunLog log 
)

Load training data from the training library directories.

Loads all the FeatureData from the Training Library. The images in the sub-directories specified by the 'TrainingClass' entries will be used as the primary source. Data from existing FeatureData files will be used unless they are out of date. In that case the data will be recomputed from the original images.

The 'ExampleFileName' A field that is in each 'FeatureVector' instance will reflect the sub-directory from where it was retrieved. Between that and the 'rootDir' field you will be able to get the full path to then original image.

Parameters
[out]latestImageTimeStampTime-stamp of the most current image loaded.
[out]changesMadeToTrainingLibrariesTrue if any image needed to have its features recalculated or images were removed or added to a training directory.
[in]cancelFlagWill monitor this flag; if turns true will terminate the load and return.
[in]logLogging File.

Definition at line 2077 of file TrainingConfiguration2.cpp.

References KKMLL::FeatureVectorList::AddQueue(), KKMLL::FactoryFVProducer::ManufacturFeatureVectorList(), NoiseTrainingClass(), KKB::DateTime::operator=(), and KKB::DateTime::operator>().

2082 {
2083  log.Level (10) << "TrainingConfiguration2::LoadFeatureDataFromTrainingLibraries - Starting." << endl;
2084 
2085  bool errorOccured = false;
2086 
2087  FeatureVectorListPtr featureData = fvFactoryProducer->ManufacturFeatureVectorList (true, log);
2088 
2089  changesMadeToTrainingLibraries = false;
2090 
2091  //****************************************************************************
2092  // Make sure that there are no existing *.data files that we are going to use.
2093  // We need to do this in a separate pass because more than one entry may refer
2094  // to the same Class and hence the same *.data file.
2095 
2096 
2097  //***********************************************************
2098  // We will first extract the Raw features from each Class
2099 
2101 
2102  DateTime latestTimeStamp;
2103  bool changesMadeToThisTrainingClass = false;
2104 
2105  for (tcIDX = trainingClasses.begin (); (tcIDX != trainingClasses.end () && (!cancelFlag) && (!errorOccured)); tcIDX++)
2106  {
2107  const TrainingClassPtr trainingClass = *tcIDX;
2108 
2109  log.Level (20) << "LoadFeatureDataFromTrainingLibraries Starting on Class[" << trainingClass->Name () << "]." << endl;
2110 
2111  FeatureVectorListPtr featureDataThisClass = ExtractFeatures (trainingClass, latestTimeStamp, changesMadeToThisTrainingClass, cancelFlag, log);
2112 
2113  if (!featureDataThisClass)
2114  {
2115  log.Level (-1) << endl
2116  << "Error Loading Feature data for class[" << trainingClass->Name () << "]." << endl
2117  << endl;
2118  errorOccured = true;
2119  }
2120  else
2121  {
2122  if (latestTimeStamp > latestImageTimeStamp)
2123  latestImageTimeStamp = latestTimeStamp;
2124 
2125  if (changesMadeToThisTrainingClass)
2126  changesMadeToTrainingLibraries = true;
2127 
2128  featureData->AddQueue (*featureDataThisClass);
2129  featureDataThisClass->Owner (false);
2130  }
2131  delete featureDataThisClass; featureDataThisClass = NULL;
2132  }
2133 
2134  if (NoiseTrainingClass () && (!cancelFlag) && (!errorOccured))
2135  {
2136  log.Level (30) << "LoadFeatureDataFromTrainingLibraries Loading Noise Class [" << NoiseTrainingClass ()->ExpandedDirectory (rootDir, 0) << "]" << endl;
2137  FeatureVectorListPtr noiseFeatureData = ExtractFeatures (NoiseTrainingClass (), latestTimeStamp, changesMadeToThisTrainingClass, cancelFlag, log);
2138  if (!noiseFeatureData)
2139  {
2140  log.Level (-1) << endl
2141  << "TrainingConfiguration2::LoadFeatureDataFromTrainingLibraries ***ERROR*** Error Loading feature data for Noise Images, Directory["
2142  << NoiseTrainingClass ()->ExpandedDirectory (rootDir, 0)
2143  << "]."
2144  << endl
2145  << endl;
2146  delete featureData; featureData = NULL;
2147  errorOccured = true;
2148  }
2149  else
2150  {
2151  if (latestTimeStamp > latestImageTimeStamp)
2152  latestImageTimeStamp = latestTimeStamp;
2153 
2154  if (changesMadeToThisTrainingClass)
2155  changesMadeToTrainingLibraries = true;
2156 
2157  featureData->AddQueue (*noiseFeatureData);
2158  noiseFeatureData->Owner (false);
2159  delete noiseFeatureData; noiseFeatureData = NULL;
2160  }
2161  }
2162 
2163  if (cancelFlag || errorOccured)
2164  {
2165  log.Level (-1) << "LoadFeatureDataFromTrainingLibraries ***ERROR*** CancelFlag or ErrorOcured set to 'true'." << endl;
2166  delete featureData;
2167  featureData = NULL;
2168  }
2169 
2170  log.Level (20) << "LoadFeatureDataFromTrainingLibraries Exiting" << endl;
2171  return featureData;
2172 } /* LoadFeatureDataFromTrainingLibraries */
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
void AddQueue(const FeatureVectorList &examplesToAdd)
Add the contents of &#39;examplesToAdd&#39; to the end of this list.
std::vector< TrainingClass * >::const_iterator const_iterator
Definition: KKQueue.h:89
RunLog & Level(kkint32 _level)
Definition: RunLog.cpp:220
bool Owner() const
Definition: KKQueue.h:305
KKStr ExpandedDirectory(const KKStr &rootDir, kkuint32 idx)
Container class for FeatureVector derived objects.
virtual FeatureVectorListPtr ManufacturFeatureVectorList(bool owner, RunLog &runLog) const
Manufactures a instance of a derived &#39;FeatureVectorList&#39; class that is appropriate for containing ins...
const KKStr & Name() const
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
const TrainingClassPtr NoiseTrainingClass() const
FeatureVectorListPtr TrainingConfiguration2::LoadOtherClasssExamples ( RunLog runLog)

Definition at line 2023 of file TrainingConfiguration2.cpp.

References KKB::KKStr::Concat(), KKMLL::FactoryFVProducer::DefaultFeatureFileIO(), KKB::KKStr::Empty(), KKMLL::FeatureFileIO::FeatureDataReSink(), KKMLL::MLClass::Name(), KKB::KKStr::operator+(), KKB::KKStr::operator=(), KKB::osAddSlash(), and KKB::osSubstituteInEnvironmentVariables().

2024 {
2025  if (!otherClass)
2026  return NULL;
2027 
2028  KKStr otherClassDirName = "";
2029 
2030  if (rootDir.Empty ())
2031  otherClassDirName = otherClass->Name ();
2032  else
2033  otherClassDirName = osAddSlash (rootDir) + otherClass->Name ();
2034 
2035  otherClassDirName = osSubstituteInEnvironmentVariables (otherClassDirName);
2036 
2037  MLClassList tempClasses;
2038  bool cancelFlag = false;
2039  bool changesMade = false;
2040  DateTime latestTimeStamp;
2041 
2042  FeatureVectorListPtr otherClassExamples = fvFactoryProducer->DefaultFeatureFileIO ()->FeatureDataReSink
2043  (fvFactoryProducer,
2044  otherClassDirName,
2045  otherClass->Name () + ".data",
2046  otherClass,
2047  true, // true = Use-Directory-name-For-Class-Name (otherClass->Name ())
2048  tempClasses,
2049  cancelFlag,
2050  changesMade,
2051  latestTimeStamp,
2052  runLog
2053  );
2054 
2055  return otherClassExamples;
2056 } /* LoadOtherClasssExamples */
Container class for FeatureVector derived objects.
KKB::KKStr osAddSlash(const KKStr &fileSpec)
bool Empty() const
Definition: KKStr.h:241
KKB::KKStr osSubstituteInEnvironmentVariables(const KKStr &src)
Substitute in the value of the environment variables into &#39;src&#39;.
Definition: OSservices.cpp:977
Maintains a list of MLClass instances.
Definition: MLClass.h:233
virtual FeatureVectorListPtr FeatureDataReSink(FactoryFVProducerPtr _fvProducerFactory, const KKStr &_dirName, const KKStr &_fileName, MLClassPtr _unknownClass, bool _useDirectoryNameForClassName, MLClassList &_mlClasses, VolConstBool &_cancelFlag, bool &_changesMade, KKB::DateTime &_timeStamp, RunLog &_log)
Synchronizes the contents of a feature data file with a directory of images.
virtual FeatureFileIOPtr DefaultFeatureFileIO() const =0
TrainingClassPtr TrainingConfiguration2::LocateByMLClassName ( const KKStr className)

Definition at line 1967 of file TrainingConfiguration2.cpp.

1968 {
1969  return trainingClasses.LocateByMLClassName (className);
1970 }
TrainingClassPtr LocateByMLClassName(const KKStr &className)
SVM_MachineType TrainingConfiguration2::MachineType ( ) const

Definition at line 1142 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParamOldSVM::MachineType(), and KKMLL::Null.

1143 {
1144  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1145  if (oldSVMparms)
1146  return oldSVMparms->MachineType ();
1147  else
1148  return SVM_MachineType::Null;
1149 } /* MachineType */
virtual SVM_MachineType MachineType() const
void TrainingConfiguration2::MachineType ( SVM_MachineType  _machineType)

Definition at line 1132 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParamOldSVM::MachineType().

1133 {
1134  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1135  if (oldSVMparms)
1136  oldSVMparms->MachineType (_machineType);
1137 
1138 } /* MachineType */
virtual SVM_MachineType MachineType() const
TrainingConfiguration2Ptr TrainingConfiguration2::Manufacture ( const KKStr _className,
const KKStr _configFileName,
bool  _validateDirectories,
RunLog _log 
)
static

Definition at line 2430 of file TrainingConfiguration2.cpp.

References KKB::GlobalGoalKeeper::EndBlock(), and KKB::GlobalGoalKeeper::StartBlock().

2435 {
2436  if (!registeredFactories)
2437  {
2438  log.Level (-1) << endl << "TrainingConfiguration2::Manufacture ***ERROR*** registeredFactories == NULL Will construct default 'TrainingConfiguration2' instance." << endl << endl;
2440  config->Load (configFileName, validateDirectories, log);
2441  return config;
2442  }
2443 
2444  GlobalGoalKeeper::StartBlock ();
2445 
2446  TrainingConfiguration2Ptr newInstance = NULL;
2447 
2448  map<KKStr,Factory*>::const_iterator idx;
2449  idx = registeredFactories->find (className);
2450  if (idx == registeredFactories->end ())
2451  {
2452  log.Level (-1) << endl << "TrainingConfiguration2::Manufacture Factory: " << className << " Is not defined; will return instance of 'TrainingConfiguration2'." << endl << endl;
2453  newInstance = new TrainingConfiguration2 ();
2454  newInstance->Load (configFileName, validateDirectories, log);
2455  }
2456  else
2457  {
2458  newInstance = idx->second->Manufacture (configFileName, validateDirectories, log);
2459  }
2460 
2461  GlobalGoalKeeper::EndBlock ();
2462  return newInstance;
2463 } /* Manufacture */
virtual void Load(const KKStr &_configFileName, bool _validateDirectories, RunLog &log)
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
static TrainingConfiguration2Ptr Manufacture(const KKStr &_className, const KKStr &_configFileName, bool _validateDirectories, RunLog &_log)
MLClassListPtr KKMLL::TrainingConfiguration2::MlClasses ( ) const
inline

Definition at line 197 of file TrainingConfiguration2.h.

Referenced by KKMLL::TrainingProcess2::ExtractTrainingClassFeatures().

197 {return mlClasses;}
Model::ModelTypes KKMLL::TrainingConfiguration2::ModelingMethod ( ) const
inline

Definition at line 198 of file TrainingConfiguration2.h.

Referenced by KKMLL::TrainingProcess2::CreateModelsFromTrainingData().

198 {return modelingMethod;}
KKStr TrainingConfiguration2::ModelParameterCmdLine ( ) const

Definition at line 690 of file TrainingConfiguration2.cpp.

References ModelParameters(), and KKMLL::ModelParam::ToCmdLineStr().

691 {
693  if (!p)
694  return "";
695  else
696  return p->ToCmdLineStr ();
697 } /* ModelParameterCmdLine */
virtual KKStr ToCmdLineStr() const
Creates a a Command Line String that represents these parameters.
Definition: ModelParam.cpp:367
ModelParamPtr ModelParameters() const
Abstract Base class for Machine Learning parameters.
Definition: ModelParam.h:35
ModelParamPtr KKMLL::TrainingConfiguration2::ModelParameters ( ) const
inline
void TrainingConfiguration2::ModelParameters ( ModelParamPtr  _modelParameters)

Definition at line 682 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::Duplicate().

Referenced by BuildTrainingClassListFromDirectoryStructure().

683 {
684  delete modelParameters;
685  modelParameters = _modelParameters->Duplicate ();
686 }
virtual ModelParamPtr Duplicate() const =0
Model::ModelTypes KKMLL::TrainingConfiguration2::ModelType ( ) const
inline

Definition at line 199 of file TrainingConfiguration2.h.

199 {return modelingMethod;}
static ModelTypes KKMLL::TrainingConfiguration2::ModelTypeFromStr ( const KKStr _modelTypeStr)
inlinestatic

Definition at line 178 of file TrainingConfiguration2.h.

References KKMLL::Model::ModelTypeFromStr().

178 {return Model::ModelTypeFromStr (_modelTypeStr);}
static ModelTypes ModelTypeFromStr(const KKStr &_modelingTypeStr)
Definition: Model.cpp:271
KKStr KKMLL::TrainingConfiguration2::ModelTypeStr ( ) const
inline

Definition at line 200 of file TrainingConfiguration2.h.

References KKMLL::Model::ModelTypeToStr().

200 {return Model::ModelTypeToStr (modelingMethod);}
static KKStr ModelTypeToStr(ModelTypes _modelingType)
Definition: Model.cpp:256
static KKStr KKMLL::TrainingConfiguration2::ModelTypeToStr ( ModelTypes  _modelType)
inlinestatic

Definition at line 177 of file TrainingConfiguration2.h.

References KKMLL::Model::ModelTypeToStr().

Referenced by KKMLL::operator<<().

177 {return Model::ModelTypeToStr (_modelType);}
static KKStr ModelTypeToStr(ModelTypes _modelingType)
Definition: Model.cpp:256
MLClassPtr KKMLL::TrainingConfiguration2::NoiseMLClass ( ) const
inline

Definition at line 201 of file TrainingConfiguration2.h.

201 {return noiseMLClass;}
const TrainingClassPtr KKMLL::TrainingConfiguration2::NoiseTrainingClass ( ) const
inline

Definition at line 202 of file TrainingConfiguration2.h.

Referenced by KKMLL::TrainingProcess2::ExtractTrainingClassFeatures(), and LoadFeatureDataFromTrainingLibraries().

202 {return noiseTrainingClass;}
bool TrainingConfiguration2::NormalizeNominalFeatures ( )

Definition at line 1985 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::NormalizeNominalFeatures().

Referenced by KKMLL::NormalizationParms::NormalizationParms().

1986 {
1987  ModelParamOldSVMPtr oldSvmParameters = OldSvmParameters ();
1988  if (oldSvmParameters)
1989  return oldSvmParameters->NormalizeNominalFeatures ();
1990 
1991  else if (modelParameters)
1992  return modelParameters->NormalizeNominalFeatures ();
1993 
1994  else
1995  return false;
1996 } /* NormalizeNominalFeatures */
virtual bool NormalizeNominalFeatures() const
Definition: ModelParam.h:115
kkint32 TrainingConfiguration2::Number_of_rounds ( ) const

Definition at line 1108 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::ModelParamType(), KKMLL::ModelParamUsfCasCor::Number_of_rounds(), and KKMLL::ModelParam::UsfCasCor.

Referenced by NumOfRounds().

1109 {
1110  if (modelParameters && (modelParameters->ModelParamType () == ModelParam::ModelParamTypes::UsfCasCor))
1111  {
1112  return dynamic_cast<ModelParamUsfCasCor*>(modelParameters)->Number_of_rounds ();
1113  }
1114  else
1115  {
1116  return -1;
1117  }
1118 }
virtual ModelParamTypes ModelParamType() const =0
This class encapsulates are the information necessary to build a UsfCasCor class. ...
void TrainingConfiguration2::Number_of_rounds ( kkint32  _number_of_rounds)

Definition at line 1122 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::ModelParamType(), KKMLL::ModelParamUsfCasCor::Number_of_rounds(), and KKMLL::ModelParam::UsfCasCor.

Referenced by NumOfRounds().

1123 {
1124  if (modelParameters && (modelParameters->ModelParamType () == ModelParam::ModelParamTypes::UsfCasCor))
1125  {
1126  dynamic_cast<ModelParamUsfCasCor*>(modelParameters)->Number_of_rounds (_number_of_rounds);
1127  }
1128 }
virtual ModelParamTypes ModelParamType() const =0
This class encapsulates are the information necessary to build a UsfCasCor class. ...
kkuint32 TrainingConfiguration2::NumHierarchialLevels ( ) const

returns back the number of hierarchical levels thereare in the trainingClass that has the most.

Definition at line 491 of file TrainingConfiguration2.cpp.

492 {
494 
495  kkuint16 numHierarchialLevels = 0;
496 
497  for (idx = trainingClasses.begin (); idx != trainingClasses.end (); idx++)
498  {
499  TrainingClassPtr tc = *idx;
500  numHierarchialLevels = Max (numHierarchialLevels, tc->MLClass ()->NumHierarchialLevels ());
501  }
502 
503  return numHierarchialLevels;
504 } /* NumHierarchialLevels */
std::vector< TrainingClass * >::const_iterator const_iterator
Definition: KKQueue.h:89
unsigned __int16 kkuint16
16 bit unsigned integer.
Definition: KKBaseTypes.h:86
kkuint16 NumHierarchialLevels() const
Definition: MLClass.cpp:419
const MLClassPtr MLClass() const
Definition: TrainingClass.h:70
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
T Max(T a, T b)
generic Max function, Both parameters must be of the same type.
Definition: KKBaseTypes.h:181
kkint32 TrainingConfiguration2::NumOfFeaturesAfterEncoding ( RunLog log) const

Definition at line 1318 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::NumOfFeaturesAfterEncoding().

1319 {
1320  if (modelParameters)
1321  return modelParameters->NumOfFeaturesAfterEncoding (fileDesc, log);
1322  else
1323  return 0;
1324 } /* NumOfFeaturesAfterEncoding */
virtual kkint32 NumOfFeaturesAfterEncoding(FileDescPtr fileDesc, RunLog &log) const
Definition: ModelParam.cpp:387
kkint32 KKMLL::TrainingConfiguration2::NumOfRounds ( ) const
inline

Definition at line 204 of file TrainingConfiguration2.h.

References Number_of_rounds().

204 {return Number_of_rounds ();}
void KKMLL::TrainingConfiguration2::NumOfRounds ( kkint32  _numOfRounds)
inline

Definition at line 253 of file TrainingConfiguration2.h.

References Number_of_rounds().

253 {Number_of_rounds (_numOfRounds);}
MLClassPtr KKMLL::TrainingConfiguration2::OtherClass ( ) const
inline

Definition at line 206 of file TrainingConfiguration2.h.

206 {return otherClass;}
void TrainingConfiguration2::ReadXML ( XmlStream s,
XmlTagConstPtr  tag,
VolConstBool cancelFlag,
RunLog log 
)
virtual

Definition at line 2766 of file TrainingConfiguration2.cpp.

References KKB::XmlStream::GetNextToken(), ReadXMLBaseToken(), and ReadXMLPost().

2772 {
2773  fileDesc = NULL;
2774  fvFactoryProducer = NULL;
2775  if (mlClassesWeOwnIt)
2776  delete mlClasses;
2777  mlClasses = NULL;
2778  otherClass = NULL;
2779  delete noiseTrainingClass; noiseTrainingClass = NULL;
2780  delete subClassifiers; subClassifiers = NULL;
2781  trainingClasses.DeleteContents ();
2782 
2783  VectorKKStr* subClassifierNameList = NULL;
2784 
2785  XmlTokenPtr t = s.GetNextToken (cancelFlag, log);
2786  while (t && (!cancelFlag))
2787  {
2788  t = ReadXMLBaseToken (t, cancelFlag, log);
2789  delete t;
2790  if (cancelFlag)
2791  t = NULL;
2792  else
2793  t = s.GetNextToken (cancelFlag, log);
2794  }
2795  delete t;
2796  t = NULL;
2797  if (!cancelFlag)
2798  ReadXMLPost (cancelFlag, log);
2799 } /* ReadXML */
void ReadXMLPost(VolConstBool &cancelFlag, RunLog &log)
void DeleteContents()
Definition: KKQueue.h:321
virtual XmlTokenPtr GetNextToken(VolConstBool &cancelFlag, RunLog &log)
Definition: XmlStream.cpp:116
XmlTokenPtr ReadXMLBaseToken(XmlTokenPtr t, VolConstBool &cancelFlag, RunLog &log)
XmlTokenPtr TrainingConfiguration2::ReadXMLBaseToken ( XmlTokenPtr  t,
VolConstBool cancelFlag,
RunLog log 
)
protected

KKKK modelParameters

Definition at line 2589 of file TrainingConfiguration2.cpp.

References KKB::KKStr::Concat(), KKB::KKStr::EqualIgnoreCase(), KKMLL::XmlElementMLClassNameList::TakeOwnership(), KKB::XmlToken::tokElement, KKB::XmlToken::TokenType(), KKB::XmlElementBool::Value(), KKB::XmlToken::VarName(), and KKB::XmlElement::VarName().

Referenced by ReadXML().

2593 {
2594  const KKStr& varName = t->VarName ();
2595  if (t->TokenType () == XmlToken::TokenTypes::tokElement)
2596  {
2597  bool tokenFound = true;
2598 
2599  XmlElementPtr e = dynamic_cast<XmlElementPtr> (t);
2600 
2601  const KKStr& varName = e->VarName ();
2602 
2603  if (typeid (*e) == typeid (XmlElementKKStr))
2604  {
2605  XmlElementKKStrPtr s = dynamic_cast<XmlElementKKStrPtr> (e);
2606  if (s && s->Value ())
2607  {
2608  KKStrConstPtr str = s->Value ();
2609  if (varName.EqualIgnoreCase ("ConfigFileNameSpecified"))
2610  configFileNameSpecified = *str;
2611 
2612  else if (varName.EqualIgnoreCase ("configRootName"))
2613  configRootName = *str;
2614 
2615  else if (varName.EqualIgnoreCase ("FvFactoryProducer"))
2616  fvFactoryProducer = FactoryFVProducer::LookUpFactory (*str);
2617 
2618  else if (varName.EqualIgnoreCase ("ModelingMethod"))
2619  modelingMethod = Model::ModelTypeFromStr (*str);
2620 
2621  else if (varName.EqualIgnoreCase ("NoiseMLClass"))
2622  noiseMLClass = MLClass::CreateNewMLClass (*str);
2623 
2624  else if (varName.EqualIgnoreCase ("otherClass"))
2625  otherClass = MLClass::CreateNewMLClass (*str);
2626 
2627  else if (varName.EqualIgnoreCase ("RootDir"))
2628  rootDir = *str;
2629 
2630  else if (varName.EqualIgnoreCase ("RootDirExpanded"))
2631  rootDirExpanded = *str;
2632 
2633  else
2634  tokenFound = false;
2635  }
2636  else
2637  {
2638  tokenFound = false;
2639  }
2640  }
2641 
2642  else if (varName.EqualIgnoreCase ("ExamplesPerClass"))
2643  {
2644  XmlElementInt32Ptr i = dynamic_cast<XmlElementInt32Ptr> (e);
2645  if (i)
2646  examplesPerClass = i->Value ();
2647  }
2648 
2649  else if (varName.EqualIgnoreCase ("MLClasses"))
2650  {
2651  XmlElementMLClassNameListPtr listOfClasses = dynamic_cast<XmlElementMLClassNameListPtr> (e);
2652  if (listOfClasses)
2653  {
2654  if (mlClassesWeOwnIt)
2655  delete mlClasses;
2656  mlClasses = listOfClasses->TakeOwnership ();
2657  mlClassesWeOwnIt = true;
2658  }
2659  }
2660 
2661  else if (varName.EqualIgnoreCase ("ModelParameters"))
2662  {
2663  /** KKKK
2664  modelParameters
2665  ***/
2666  }
2667 
2668  else if (varName.EqualIgnoreCase ("NoiseTrainingClass"))
2669  {
2671  if (ntc)
2672  {
2673  delete noiseTrainingClass;
2674  noiseTrainingClass = NULL;
2675  noiseTrainingClass = ntc->TakeOwnership ();
2676  }
2677  }
2678 
2679  else if (varName.EqualIgnoreCase ("FvFactoryProducerSpecified"))
2680  {
2681  XmlElementBoolPtr vBool = dynamic_cast<XmlElementBoolPtr> (e);
2682  if (vBool)
2683  fvFactoryProducerSpecified = vBool->Value ();
2684  }
2685 
2686  else if (varName.EqualIgnoreCase ("ValidateDirectories"))
2687  {
2688  XmlElementBoolPtr vd = dynamic_cast<XmlElementBoolPtr> (e);
2689  if (vd)
2690  validateDirectories = vd->Value ();
2691  }
2692 
2693  else if (varName.EqualIgnoreCase ("TrainingClasses"))
2694  {
2696  if (tcl)
2697  {
2698  TrainingClassListPtr xmlTrainClasses = tcl->TakeOwnership ();
2699  if (xmlTrainClasses)
2700  {
2701  trainingClasses.DeleteContents ();
2702  while (xmlTrainClasses->QueueSize () > 0)
2703  {
2704  TrainingClassPtr tc = xmlTrainClasses->PopFromBack ();
2705  trainingClasses.PushOnFront (tc);
2706  }
2707  delete xmlTrainClasses;
2708  xmlTrainClasses = NULL;
2709  }
2710  }
2711  }
2712 
2713  else if (varName.EqualIgnoreCase ("SubClassifiers"))
2714  {
2715  XmlElementVectorKKStrPtr sc = dynamic_cast<XmlElementVectorKKStrPtr> (e);
2716  if (sc)
2717  {
2718  delete subClassifierNameList;
2719  subClassifierNameList = sc->TakeOwnership ();
2720  }
2721  }
2722 
2723  else
2724  {
2725  tokenFound = false;
2726  }
2727 
2728  if (tokenFound)
2729  {
2730  delete t;
2731  t = NULL;
2732  }
2733  }
2734 
2735  return t;
2736 } /* ReadXMLBaseToken */
bool Value() const
Definition: XmlStream.cpp:1028
T *const Value() const
Definition: XmlStream.h:441
static FactoryFVProducerPtr LookUpFactory(const KKStr &name)
Returns pointer to existing instance of &#39;FactoryFVProducer&#39; that was previously registered with &#39;name...
void DeleteContents()
Definition: KKQueue.h:321
static ModelTypes ModelTypeFromStr(const KKStr &_modelingTypeStr)
Definition: Model.cpp:271
virtual EntryPtr PopFromBack()
Definition: KKQueue.h:648
kkint32 Value() const
Definition: XmlStream.h:906
bool EqualIgnoreCase(const KKStr &s2) const
Definition: KKStr.cpp:1250
MLClassListPtr TakeOwnership()
Definition: MLClass.cpp:1491
virtual const KKStr & VarName() const
Definition: XmlStream.cpp:794
static MLClassPtr CreateNewMLClass(const KKStr &_name, kkint32 _classId=-1)
Static method used to create a new instance of a MLClass object.
Definition: MLClass.cpp:100
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
kkint32 QueueSize() const
Definition: KKQueue.h:313
virtual TokenTypes TokenType()=0
virtual void PushOnFront(EntryPtr _entry)
Definition: KKQueue.h:383
Will only write the ClassName rather than complete MLClass instances.
Definition: MLClass.h:580
virtual const KKStr & VarName() const
Definition: XmlStream.h:269
void TrainingConfiguration2::ReadXMLPost ( VolConstBool cancelFlag,
RunLog log 
)
protected

Definition at line 2740 of file TrainingConfiguration2.cpp.

References DefaultFeatureVectorProducer(), KKB::KKStr::Empty(), KKMLL::FactoryFVProducer::FileDesc(), KKMLL::TrainingClass::SubClassifier(), and KKMLL::TrainingClass::SubClassifierName().

Referenced by ReadXML().

2743 {
2744  if (!fvFactoryProducer)
2745  fvFactoryProducer = DefaultFeatureVectorProducer (log);
2746 
2747  fileDesc = fvFactoryProducer->FileDesc ();
2748 
2750  for (idx = trainingClasses.begin (); (idx != trainingClasses.end ()) && (!cancelFlag); ++idx)
2751  {
2752  TrainingClassPtr tc = *idx;
2753  if (!tc->SubClassifierName ().Empty ())
2754  {
2755  bool errorsFound = false;
2756 
2757  TrainingConfiguration2Ptr subClassifeir =
2758  ValidateSubClassifier (tc->SubClassifierName (), errorsFound, log);
2759  tc->SubClassifier (subClassifeir);
2760  }
2761  }
2762 } /* ReadXMLPost */
std::vector< TrainingClass * >::iterator iterator
Definition: KKQueue.h:88
virtual FactoryFVProducerPtr DefaultFeatureVectorProducer(RunLog &runLog) const
bool Empty() const
Definition: KKStr.h:241
TrainingConfiguration2Ptr SubClassifier() const
Definition: TrainingClass.h:72
Specify where training examples and other related data for a MLClass that is needed to train a classi...
Definition: TrainingClass.h:38
const KKStr & SubClassifierName() const
Definition: TrainingClass.h:73
virtual FileDescPtr FileDesc() const =0
void TrainingConfiguration2::RegisterFatory ( const KKStr className,
Factory factory 
)
static

Definition at line 2467 of file TrainingConfiguration2.cpp.

References KKB::GlobalGoalKeeper::EndBlock(), and KKB::GlobalGoalKeeper::StartBlock().

Referenced by FactoryInstace().

2470 {
2471  GlobalGoalKeeper::StartBlock ();
2472  if (!registeredFactories)
2473  {
2474  registeredFactories = new map<KKStr,Factory*> ();
2475  atexit (FinalCleanUp);
2476  }
2477 
2478  map<KKStr,Factory*>::const_iterator idx;
2479  idx = registeredFactories->find (className);
2480  if (idx == registeredFactories->end ())
2481  registeredFactories->insert (pair<KKStr,Factory*> (className, factory));
2482  else
2483  {
2484  cerr << endl << "TrainingConfiguration2::RegisterFatory ***ERROR*** 'TrainingConfiguration2::Factory with same name[" << className << "]" << endl << endl;
2485  }
2486 
2487  GlobalGoalKeeper::EndBlock ();
2488 }
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
const KKStr& KKMLL::TrainingConfiguration2::RootDir ( ) const
inline

The root directory where Training library images are stored.

Definition at line 207 of file TrainingConfiguration2.h.

void TrainingConfiguration2::RootDir ( const KKStr _rootDir)

Definition at line 673 of file TrainingConfiguration2.cpp.

References KKB::KKStr::operator=(), and KKB::osSubstituteInEnvironmentVariables().

Referenced by CreateFromDirectoryStructure().

674 {
675  rootDir = _rootDir;
676  rootDirExpanded = KKB::osSubstituteInEnvironmentVariables (rootDir);
677  trainingClasses.RootDir (rootDir);
678 }
const KKStr & RootDir() const
KKB::KKStr osSubstituteInEnvironmentVariables(const KKStr &src)
Substitute in the value of the environment variables into &#39;src&#39;.
Definition: OSservices.cpp:977
KKStr TrainingConfiguration2::RootDirExpanded ( ) const

Definition at line 469 of file TrainingConfiguration2.cpp.

470 {
471  return rootDirExpanded;
472 }
void TrainingConfiguration2::Save ( const KKStr fileName) const
virtual

Definition at line 665 of file TrainingConfiguration2.cpp.

Referenced by CreateFromDirectoryStructure().

666 {
667  ofstream o (fileName.Str ());
668  Save (o);
669  o.close ();
670 } /* Save */
const char * Str() const
Returns a pointer to a ascii string.
Definition: KKStr.h:422
virtual void Save(const KKStr &fileName) const
virtual void KKMLL::TrainingConfiguration2::Save ( std::ostream &  o) const
virtual
SVM_SelectionMethod TrainingConfiguration2::SelectionMethod ( ) const

Definition at line 1162 of file TrainingConfiguration2.cpp.

References KKMLL::Null, and KKMLL::ModelParamOldSVM::SelectionMethod().

1163 {
1164  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1165  if (oldSVMparms)
1166  return (SVM_SelectionMethod)oldSVMparms->SelectionMethod ();
1167  else
1169 } /* SelectionMethod */
SVM_SelectionMethod
Definition: SVMparam.h:34
virtual SVM_SelectionMethod SelectionMethod() const
void TrainingConfiguration2::SelectionMethod ( SVM_SelectionMethod  _selectionMethod)

Definition at line 1153 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParamOldSVM::SelectionMethod().

1154 {
1155  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1156  if (oldSVMparms)
1157  oldSVMparms->SelectionMethod (_selectionMethod);
1158 } /* SelectionMethod */
virtual SVM_SelectionMethod SelectionMethod() const
void TrainingConfiguration2::SetBinaryClassFields ( MLClassPtr  class1,
MLClassPtr  class2,
const SVM233::svm_parameter _param,
const FeatureNumList _features,
float  _weight 
)

Definition at line 1238 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParamOldSVM::SetBinaryClassFields().

1244 {
1245  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1246  if (oldSVMparms)
1247  oldSVMparms->SetBinaryClassFields (class1, class2, _param, &_features, _weight);
1248 } /* SetBinaryClassFields */
void SetBinaryClassFields(MLClassPtr class1, MLClassPtr class2, const svm_parameter &_param, FeatureNumListConstPtr _features, float _weight)
void TrainingConfiguration2::SetFeatureNums ( const FeatureNumList features)

Definition at line 1173 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::SelectedFeatures().

Referenced by CreateFromFeatureVectorList().

1174 {
1175  if (modelParameters)
1176  modelParameters->SelectedFeatures (features);
1177 } /* SetFeatureNums */
virtual FeatureNumListConstPtr SelectedFeatures() const
Definition: ModelParam.h:116
void TrainingConfiguration2::SetFeatureNums ( MLClassPtr  class1,
MLClassPtr  class2,
const FeatureNumList _features,
float  _weight = -1 
)

Definition at line 1179 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParamOldSVM::SetFeatureNums().

1184 {
1185  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1186  if (oldSVMparms)
1187  {
1188  oldSVMparms->SetFeatureNums (class1, class2, &_features, _weight);
1189  }
1190 } /* SetFeatureNums */
void SetFeatureNums(MLClassPtr class1, MLClassPtr class2, FeatureNumListConstPtr _features, float _weight=-1)
void TrainingConfiguration2::SetModelParameters ( ModelParamPtr  _svmParanters,
kkint32  _examplesPerClass 
)

Definition at line 1359 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::Duplicate().

1362 {
1363  delete modelParameters;
1364  modelParameters = _svmParanters->Duplicate ();
1365  examplesPerClass = _examplesPerClass;
1366 } /* SetModel3Parameters */
virtual ModelParamPtr Duplicate() const =0
void TrainingConfiguration2::SetTrainingClasses ( TrainingClassListPtr  _trainingClasses)

Definition at line 1252 of file TrainingConfiguration2.cpp.

References EmptyTrainingClasses().

1253 {
1256 
1257  for (idx = _trainingClasses->begin (); idx != _trainingClasses->end (); idx++)
1258  AddATrainingClass (*idx);
1259 } /* SetTrainingClasses */
std::vector< TrainingClass * >::iterator iterator
Definition: KKQueue.h:88
void AddATrainingClass(TrainingClassPtr _trainClass)
Adds specified Training Class to list taking ownership of it.
void EmptyTrainingClasses()
Removes all training classes from the configuration; example use would be to remove all classes and t...
TrainingConfiguration2ListPtr KKMLL::TrainingConfiguration2::SubClassifiers ( ) const
inline

Definition at line 210 of file TrainingConfiguration2.h.

Referenced by KKMLL::TrainingProcess2::ReadXML().

210 {return subClassifiers;}
const SVMparam & TrainingConfiguration2::SVMparamREF ( RunLog log) const

Definition at line 1020 of file TrainingConfiguration2.cpp.

References KKB::KKStr::Concat(), KKB::KKException::KKException(), and KKMLL::ModelParamOldSVM::SvmParameters().

1021 {
1022  ModelParamOldSVMPtr oldSVMparms = OldSvmParameters ();
1023  if (oldSVMparms)
1024  {
1025  SVMparamPtr s = oldSVMparms->SvmParameters ();
1026  return *s;
1027  }
1028  else
1029  {
1030  KKStr errMsg = "TrainingConfiguration2::SVMparamREF ***ERROR*** (modelingMethod != mmOldSVM)";
1031  log.Level (-1) << endl << errMsg << endl << endl;
1032  throw new KKException (errMsg);
1033  }
1034 } /* SVMparam */
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
RunLog & Level(kkint32 _level)
Definition: RunLog.cpp:220
This class encapsulates are the information necessary to build a SVMModel class.
Definition: SVMparam.h:74
virtual SVMparamPtr SvmParameters() const
const TrainingClassList& KKMLL::TrainingConfiguration2::TrainingClasses ( ) const
inline
void TrainingConfiguration2::WriteXML ( const KKStr varName,
std::ostream &  o 
) const

Definition at line 2570 of file TrainingConfiguration2.cpp.

References KKB::XmlTag::AddAtribute(), KKB::KKStr::Empty(), KKB::XmlTag::tagEnd, KKB::XmlTag::tagStart, KKB::XmlTag::WriteXML(), WriteXMLFields(), and KKB::XmlTag::XmlTag().

Referenced by KKMLL::ModelDual::WriteXML(), and KKMLL::TrainingProcess2::WriteXML().

2573 {
2574  XmlTag startTag ("TrainingConfiguration2", XmlTag::TagTypes::tagStart);
2575  if (!varName.Empty ())
2576  startTag.AddAtribute ("VarName", varName);
2577  startTag.WriteXML (o);
2578  o << endl;
2579 
2580  WriteXMLFields (o);
2581 
2582  XmlTag endTag ("TrainingConfiguration2", XmlTag::TagTypes::tagEnd);
2583  endTag.WriteXML (o);
2584  o << endl;
2585 } /* WriteXML */
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
void WriteXMLFields(std::ostream &o) const
To be used by both Base Class and Derived classes to write fields that are specific to &#39;TrainingConfi...
bool Empty() const
Definition: KKStr.h:241
void TrainingConfiguration2::WriteXMLFields ( std::ostream &  o) const
protected

To be used by both Base Class and Derived classes to write fields that are specific to 'TrainingConfiguration2'.

Definition at line 2513 of file TrainingConfiguration2.cpp.

References KKMLL::ModelParam::WriteXML(), KKB::XmlElementBool::WriteXML(), and KKMLL::XmlElementMLClassNameList::WriteXML().

Referenced by WriteXML().

2514 {
2515  if (!configFileNameSpecified.Empty ())
2516  XmlElementKKStr::WriteXML (configFileNameSpecified, "ConfigFileNameSpecified", o);
2517 
2518  if (!configRootName.Empty ())
2519  XmlElementKKStr::WriteXML (configFileNameSpecified, "ConfigRootName", o);
2520 
2521  XmlElementInt32::WriteXML (examplesPerClass, "ExamplesPerClass", o);
2522 
2523  if (fvFactoryProducer)
2524  XmlElementKKStr::WriteXML (fvFactoryProducer->Name (), "FvFactoryProducer", o);
2525 
2526  XmlElementBool::WriteXML (fvFactoryProducerSpecified, "FvFactoryProducerSpecified", o);
2527 
2528  if (mlClasses)
2529  XmlElementMLClassNameList::WriteXML (*mlClasses, "MLClasses", o);
2530 
2531  XmlElementKKStr::WriteXML (Model::ModelTypeToStr (modelingMethod), "ModelingMethod", o);
2532 
2533  if (modelParameters)
2534  modelParameters->WriteXML ("ModelParameters", o);
2535 
2536  if (noiseMLClass)
2537  XmlElementKKStr::WriteXML (noiseMLClass->Name (), "NoiseMLClass", o);
2538 
2539  if (noiseTrainingClass)
2540  XmlElementTrainingClass::WriteXML (*noiseTrainingClass, "NoiseTrainingClass", o);
2541 
2542  if (otherClass)
2543  XmlElementKKStr::WriteXML (otherClass->Name (), "OtherClass", o);
2544 
2545  if (!rootDir.Empty ())
2546  XmlElementKKStr::WriteXML (rootDir, "RootDir", o);
2547 
2548  if (!rootDirExpanded.Empty ())
2549  XmlElementKKStr::WriteXML (rootDirExpanded, "RootDirExpanded", o);
2550 
2551  XmlElementBool::WriteXML (validateDirectories, "validateDirectories", o);
2552 
2553  trainingClasses.WriteXML ("TrainingClasses", o);
2554 
2555  if (subClassifiers)
2556  {
2557  VectorKKStr subClassifierList;
2559  for (idx = subClassifiers->begin (); idx != subClassifiers->end (); ++idx)
2560  {
2561  TrainingConfiguration2Ptr sc = *idx;
2562  subClassifierList.push_back (sc->ConfigFileNameSpecified ());
2563  }
2564  XmlElementVectorKKStr::WriteXML (subClassifierList, "subClassifiers", o);
2565  }
2566 } /* WriteXMLFields */
static KKStr ModelTypeToStr(ModelTypes _modelingType)
Definition: Model.cpp:256
std::vector< TrainingConfiguration2 * >::const_iterator const_iterator
Definition: KKQueue.h:89
static void WriteXML(const MLClassList &mlClassList, const KKStr &varName, std::ostream &o)
Definition: MLClass.cpp:1499
static void WriteXML(const T &t, const KKStr &varName, std::ostream &o)
Definition: XmlStream.h:451
virtual void WriteXML(const KKStr &varName, std::ostream &o) const =0
bool Empty() const
Definition: KKStr.h:241
const KKStr & Name() const
virtual void WriteXML(const KKStr &varName, std::ostream &o) const
const KKStr & ConfigFileNameSpecified() const

Member Data Documentation

TrainingConfiguration2::Factory * TrainingConfiguration2::factoryInstace = NULL
static

Definition at line 532 of file TrainingConfiguration2.h.

Referenced by FactoryInstace().


The documentation for this class was generated from the following files: