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: ![]()
|