limited rng seed choice by 5 values in dtree, boost, rtrees, ertrees tests; hope this make them more stable.

pull/13383/head
Maria Dimashova 15 years ago
parent 56745b5400
commit 78ccde56b2
  1. 11
      tests/ml/src/amltests.cpp
  2. 4
      tests/ml/src/mltest_main.cpp
  3. 15
      tests/ml/src/mltests.cpp

@ -100,12 +100,17 @@ int CV_AMLTest::validate_test_results( int testCaseIdx )
resultNode["mean"] >> mean; resultNode["mean"] >> mean;
resultNode["sigma"] >> sigma; resultNode["sigma"] >> sigma;
float curErr = get_error( testCaseIdx, CV_TEST_ERROR ); float curErr = get_error( testCaseIdx, CV_TEST_ERROR );
if ( abs( curErr - mean) > 6*sigma ) const int coeff = 3;
ts->printf( CvTS::LOG, "Test case = %d; test error = %f; mean error = %f (diff=%f), %d*sigma = %f",
testCaseIdx, curErr, mean, abs( curErr - mean), coeff, coeff*sigma );
if ( abs( curErr - mean) > coeff*sigma )
{ {
ts->printf( CvTS::LOG, "in test case %d test error is out of range:\n" ts->printf( CvTS::LOG, "abs(%f - %f) > %f - OUT OF RANGE!\n", curErr, mean, coeff*sigma, coeff );
"abs(%f/*curEr*/ - %f/*mean*/ > %f/*6*sigma*/", testCaseIdx, curErr, mean, 6*sigma );
return CvTS::FAIL_BAD_ACCURACY; return CvTS::FAIL_BAD_ACCURACY;
} }
else
ts->printf( CvTS::LOG, ".\n" );
} }
else else
{ {

@ -45,10 +45,10 @@ CvTS test_system("ml");
const char* blacklist[] = const char* blacklist[] =
{ {
"adtree", //ticket 662 /*"adtree", //ticket 662
"artrees", //ticket 460 "artrees", //ticket 460
"aboost", //ticket 474 "aboost", //ticket 474
"aertrees", "aertrees",*/ //ticket 505
0 0
}; };

@ -432,6 +432,20 @@ int str_to_boost_type( string& str )
CV_MLBaseTest::CV_MLBaseTest( const char* _modelName, const char* _testName, const char* _testFuncs ) : CV_MLBaseTest::CV_MLBaseTest( const char* _modelName, const char* _testName, const char* _testFuncs ) :
CvTest( _testName, _testFuncs ) CvTest( _testName, _testFuncs )
{ {
int64 seeds[] = { 0x00009fff4f9c8d52,
0x0000a17166072c7c,
0x0201b32115cd1f9a,
0x0513cb37abcd1234,
0x0001a2b3c4d5f678
};
int seedCount = sizeof(seeds)/sizeof(seeds[0]);
RNG& rng = theRNG();
initSeed = rng.state;
rng.state = seeds[rng(seedCount)];
modelName = _modelName; modelName = _modelName;
nbayes = 0; nbayes = 0;
knearest = 0; knearest = 0;
@ -495,6 +509,7 @@ CV_MLBaseTest::~CV_MLBaseTest()
delete rtrees; delete rtrees;
if( ertrees ) if( ertrees )
delete ertrees; delete ertrees;
theRNG().state = initSeed;
} }
int CV_MLBaseTest::read_params( CvFileStorage* _fs ) int CV_MLBaseTest::read_params( CvFileStorage* _fs )

Loading…
Cancel
Save