Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

void Impala::Application::CrossValidate ( Training::Factory *  factory,
bool  testMode 
)

Definition at line 40 of file mainCrossValidate.cpp.

References Impala::Util::PropertySet::Add(), Impala::Core::Training::Factory::GetDataSet(), Impala::Core::Training::Factory::GetModelLocator(), Impala::Core::Training::Factory::GetProperties(), ILOG_INFO, ILOG_VAR, Impala::Core::Training::Factory::MakeAnnotation(), Impala::Core::Training::Factory::MakeConceptList(), Impala::Core::Training::Factory::MakeSearcher(), Impala::Core::Training::ParameterSearcher::Search(), Impala::Persistency::ModelLocator::SetConcept(), and TestFolds().

Referenced by mainCrossValidate().

00041 {
00042     ILOG_VAR(Impala.Application.CrossValidate);
00043     std::vector<String> conceptList = factory->MakeConceptList();
00044     Util::PropertySet* properties = factory->GetProperties();
00045 
00046     for (int i=0 ; i<conceptList.size(); ++i)
00047     {
00048         String concept = conceptList[i];
00049         properties->Add("concept", concept);
00050         ILOG_INFO_HEADNODE("starting on concept " << i << ": " << concept);
00051         ModelLocator modelLoc = factory->GetModelLocator();
00052         modelLoc.SetConcept(concept);
00053         if (BestFileRepository().Exists(modelLoc))
00054         {
00055             ILOG_INFO_HEADNODE("bestfile already exists: skipping...");
00056             continue;
00057         }
00058 
00059         Table::AnnotationTable* annotation = factory->MakeAnnotation(concept);
00060         if (annotation == 0)
00061         {
00062             ILOG_INFO("no annotation found for " << concept << ", skipping...");
00063             continue;
00064         }
00065         if (testMode && (i == 0) && (Link::Mpi::MyId() == 0))
00066         {
00067             TestFolds(annotation, factory->GetDataSet());
00068         }
00069         ParameterSearcher* searcher = factory->MakeSearcher(annotation);
00070         Util::PropertySet results = searcher->Search();
00071         results.Add("value", searcher->GetBestScore());
00072 
00073         if (Link::Mpi::MyId() == 0)
00074         {
00075             ILOG_INFO_HEADNODE("saving results for " << concept);
00076             BestFileRepository().Add(modelLoc, &results);
00077             std::vector<Util::PropertySet*> allP = searcher->GetAllScores();
00078             AllParameterFileRepository().Add(modelLoc, &allP);
00079             for (int i=0 ; i<allP.size() ; i++)
00080                 delete allP[i];
00081         }
00082         delete searcher;
00083         delete annotation;
00084     }
00085 }

Here is the call graph for this function:


Generated on Thu Jan 13 09:14:07 2011 for ImpalaSrc by  doxygen 1.5.1