mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
Warning fixes continued
This commit is contained in:
@@ -80,7 +80,7 @@ void generateData( Mat& data, Mat& labels, const vector<int>& sizes, const Mat&
|
||||
CV_Assert( _means.rows == (int)sizes.size() && covs.size() == sizes.size() );
|
||||
CV_Assert( !data.empty() && data.rows == total );
|
||||
CV_Assert( data.type() == dataType );
|
||||
|
||||
|
||||
labels.create( data.rows, 1, labelType );
|
||||
|
||||
randn( data, Scalar::all(-1.0), Scalar::all(1.0) );
|
||||
@@ -99,7 +99,7 @@ void generateData( Mat& data, Mat& labels, const vector<int>& sizes, const Mat&
|
||||
for( int i = bi; i < ei; i++, p++ )
|
||||
{
|
||||
Mat r = data.row(i);
|
||||
r = r * (*cit) + *mit;
|
||||
r = r * (*cit) + *mit;
|
||||
if( labelType == CV_32FC1 )
|
||||
labels.at<float>(p, 0) = (float)l;
|
||||
else if( labelType == CV_32SC1 )
|
||||
@@ -224,14 +224,14 @@ void CV_KMeansTest::run( int /*start_from*/ )
|
||||
const int iters = 100;
|
||||
int sizesArr[] = { 5000, 7000, 8000 };
|
||||
int pointsCount = sizesArr[0]+ sizesArr[1] + sizesArr[2];
|
||||
|
||||
|
||||
Mat data( pointsCount, 2, CV_32FC1 ), labels;
|
||||
vector<int> sizes( sizesArr, sizesArr + sizeof(sizesArr) / sizeof(sizesArr[0]) );
|
||||
Mat means;
|
||||
vector<Mat> covs;
|
||||
defaultDistribs( means, covs );
|
||||
generateData( data, labels, sizes, means, covs, CV_32FC1, CV_32SC1 );
|
||||
|
||||
|
||||
int code = cvtest::TS::OK;
|
||||
float err;
|
||||
Mat bestLabels;
|
||||
@@ -327,24 +327,24 @@ void CV_KNearestTest::run( int /*start_from*/ )
|
||||
class EM_Params
|
||||
{
|
||||
public:
|
||||
EM_Params(int nclusters=10, int covMatType=EM::COV_MAT_DIAGONAL, int startStep=EM::START_AUTO_STEP,
|
||||
const cv::TermCriteria& termCrit=cv::TermCriteria(cv::TermCriteria::COUNT+cv::TermCriteria::EPS, 100, FLT_EPSILON),
|
||||
const cv::Mat* probs=0, const cv::Mat* weights=0,
|
||||
const cv::Mat* means=0, const std::vector<cv::Mat>* covs=0)
|
||||
: nclusters(nclusters), covMatType(covMatType), startStep(startStep),
|
||||
probs(probs), weights(weights), means(means), covs(covs), termCrit(termCrit)
|
||||
EM_Params(int _nclusters=10, int _covMatType=EM::COV_MAT_DIAGONAL, int _startStep=EM::START_AUTO_STEP,
|
||||
const cv::TermCriteria& _termCrit=cv::TermCriteria(cv::TermCriteria::COUNT+cv::TermCriteria::EPS, 100, FLT_EPSILON),
|
||||
const cv::Mat* _probs=0, const cv::Mat* _weights=0,
|
||||
const cv::Mat* _means=0, const std::vector<cv::Mat>* _covs=0)
|
||||
: nclusters(_nclusters), covMatType(_covMatType), startStep(_startStep),
|
||||
probs(_probs), weights(_weights), means(_means), covs(_covs), termCrit(_termCrit)
|
||||
{}
|
||||
|
||||
|
||||
int nclusters;
|
||||
int covMatType;
|
||||
int startStep;
|
||||
|
||||
|
||||
// all 4 following matrices should have type CV_32FC1
|
||||
const cv::Mat* probs;
|
||||
const cv::Mat* weights;
|
||||
const cv::Mat* means;
|
||||
const std::vector<cv::Mat>* covs;
|
||||
|
||||
|
||||
cv::TermCriteria termCrit;
|
||||
};
|
||||
|
||||
@@ -497,7 +497,7 @@ void CV_EMTest::run( int /*start_from*/ )
|
||||
int currCode = runCase(caseIndex++, params, trainData, trainLabels, testData, testLabels, sizes);
|
||||
code = currCode == cvtest::TS::OK ? code : currCode;
|
||||
}
|
||||
|
||||
|
||||
ts->set_failed_test_info( code );
|
||||
}
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@ class CV_GBTreesTest : public cvtest::BaseTest
|
||||
{
|
||||
public:
|
||||
CV_GBTreesTest();
|
||||
~CV_GBTreesTest();
|
||||
|
||||
~CV_GBTreesTest();
|
||||
|
||||
protected:
|
||||
void run(int);
|
||||
|
||||
@@ -21,21 +21,21 @@ protected:
|
||||
int TestSaveLoad();
|
||||
|
||||
int checkPredictError(int test_num);
|
||||
int checkLoadSave();
|
||||
|
||||
int checkLoadSave();
|
||||
|
||||
string model_file_name1;
|
||||
string model_file_name2;
|
||||
|
||||
string* datasets;
|
||||
string data_path;
|
||||
|
||||
|
||||
CvMLData* data;
|
||||
CvGBTrees* gtb;
|
||||
|
||||
|
||||
vector<float> test_resps1;
|
||||
vector<float> test_resps2;
|
||||
|
||||
int64 initSeed;
|
||||
int64 initSeed;
|
||||
};
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ int _get_len(const CvMat* mat)
|
||||
|
||||
CV_GBTreesTest::CV_GBTreesTest()
|
||||
{
|
||||
int64 seeds[] = { CV_BIG_INT(0x00009fff4f9c8d52),
|
||||
int64 seeds[] = { CV_BIG_INT(0x00009fff4f9c8d52),
|
||||
CV_BIG_INT(0x0000a17166072c7c),
|
||||
CV_BIG_INT(0x0201b32115cd1f9a),
|
||||
CV_BIG_INT(0x0513cb37abcd1234),
|
||||
@@ -55,7 +55,7 @@ CV_GBTreesTest::CV_GBTreesTest()
|
||||
};
|
||||
|
||||
int seedCount = sizeof(seeds)/sizeof(seeds[0]);
|
||||
cv::RNG& rng = cv::theRNG();
|
||||
cv::RNG& rng = cv::theRNG();
|
||||
initSeed = rng.state;
|
||||
rng.state = seeds[rng(seedCount)];
|
||||
|
||||
@@ -69,14 +69,14 @@ CV_GBTreesTest::~CV_GBTreesTest()
|
||||
if (data)
|
||||
delete data;
|
||||
delete[] datasets;
|
||||
cv::theRNG().state = initSeed;
|
||||
cv::theRNG().state = initSeed;
|
||||
}
|
||||
|
||||
|
||||
int CV_GBTreesTest::TestTrainPredict(int test_num)
|
||||
{
|
||||
int code = cvtest::TS::OK;
|
||||
|
||||
|
||||
int weak_count = 200;
|
||||
float shrinkage = 0.1f;
|
||||
float subsample_portion = 0.5f;
|
||||
@@ -89,7 +89,7 @@ int CV_GBTreesTest::TestTrainPredict(int test_num)
|
||||
case (2) : loss_function_type = CvGBTrees::ABSOLUTE_LOSS; break;
|
||||
case (3) : loss_function_type = CvGBTrees::HUBER_LOSS; break;
|
||||
case (0) : loss_function_type = CvGBTrees::DEVIANCE_LOSS; break;
|
||||
default :
|
||||
default :
|
||||
{
|
||||
ts->printf( cvtest::TS::LOG, "Bad test_num value in CV_GBTreesTest::TestTrainPredict(..) function." );
|
||||
return cvtest::TS::FAIL_BAD_ARG_CHECK;
|
||||
@@ -101,7 +101,7 @@ int CV_GBTreesTest::TestTrainPredict(int test_num)
|
||||
{
|
||||
data = new CvMLData();
|
||||
data->set_delimiter(',');
|
||||
|
||||
|
||||
if (data->read_csv(datasets[dataset_num].c_str()))
|
||||
{
|
||||
ts->printf( cvtest::TS::LOG, "File reading error." );
|
||||
@@ -124,25 +124,25 @@ int CV_GBTreesTest::TestTrainPredict(int test_num)
|
||||
CvTrainTestSplit spl( train_sample_count );
|
||||
data->set_train_test_split( &spl );
|
||||
}
|
||||
|
||||
data->mix_train_and_test_idx();
|
||||
|
||||
|
||||
|
||||
data->mix_train_and_test_idx();
|
||||
|
||||
|
||||
if (gtb) delete gtb;
|
||||
gtb = new CvGBTrees();
|
||||
bool tmp_code = true;
|
||||
tmp_code = gtb->train(data, CvGBTreesParams(loss_function_type, weak_count,
|
||||
shrinkage, subsample_portion,
|
||||
max_depth, use_surrogates));
|
||||
|
||||
|
||||
if (!tmp_code)
|
||||
{
|
||||
ts->printf( cvtest::TS::LOG, "Model training was failed.");
|
||||
return cvtest::TS::FAIL_INVALID_OUTPUT;
|
||||
}
|
||||
|
||||
|
||||
code = checkPredictError(test_num);
|
||||
|
||||
|
||||
return code;
|
||||
|
||||
}
|
||||
@@ -152,14 +152,14 @@ int CV_GBTreesTest::checkPredictError(int test_num)
|
||||
{
|
||||
if (!gtb)
|
||||
return cvtest::TS::FAIL_GENERIC;
|
||||
|
||||
|
||||
//float mean[] = {5.430247f, 13.5654f, 12.6569f, 13.1661f};
|
||||
//float sigma[] = {0.4162694f, 3.21161f, 3.43297f, 3.00624f};
|
||||
float mean[] = {5.80226f, 12.68689f, 13.49095f, 13.19628f};
|
||||
float mean[] = {5.80226f, 12.68689f, 13.49095f, 13.19628f};
|
||||
float sigma[] = {0.4764534f, 3.166919f, 3.022405f, 2.868722f};
|
||||
|
||||
|
||||
float current_error = gtb->calc_error(data, CV_TEST_ERROR);
|
||||
|
||||
|
||||
if ( abs( current_error - mean[test_num]) > 6*sigma[test_num] )
|
||||
{
|
||||
ts->printf( cvtest::TS::LOG, "Test error is out of range:\n"
|
||||
@@ -177,7 +177,7 @@ int CV_GBTreesTest::TestSaveLoad()
|
||||
{
|
||||
if (!gtb)
|
||||
return cvtest::TS::FAIL_GENERIC;
|
||||
|
||||
|
||||
model_file_name1 = cv::tempfile();
|
||||
model_file_name2 = cv::tempfile();
|
||||
|
||||
@@ -186,9 +186,9 @@ int CV_GBTreesTest::TestSaveLoad()
|
||||
gtb->load(model_file_name1.c_str());
|
||||
gtb->calc_error(data, CV_TEST_ERROR, &test_resps2);
|
||||
gtb->save(model_file_name2.c_str());
|
||||
|
||||
|
||||
return checkLoadSave();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ int CV_GBTreesTest::checkLoadSave()
|
||||
// 1. compare files
|
||||
ifstream f1( model_file_name1.c_str() ), f2( model_file_name2.c_str() );
|
||||
string s1, s2;
|
||||
int lineIdx = 0;
|
||||
int lineIdx = 0;
|
||||
CV_Assert( f1.is_open() && f2.is_open() );
|
||||
for( ; !f1.eof() && !f2.eof(); lineIdx++ )
|
||||
{
|
||||
@@ -244,23 +244,23 @@ int CV_GBTreesTest::checkLoadSave()
|
||||
void CV_GBTreesTest::run(int)
|
||||
{
|
||||
|
||||
string data_path = string(ts->get_data_path());
|
||||
string dataPath = string(ts->get_data_path());
|
||||
datasets = new string[2];
|
||||
datasets[0] = data_path + string("spambase.data"); /*string("dataset_classification.csv");*/
|
||||
datasets[1] = data_path + string("housing_.data"); /*string("dataset_regression.csv");*/
|
||||
datasets[0] = dataPath + string("spambase.data"); /*string("dataset_classification.csv");*/
|
||||
datasets[1] = dataPath + string("housing_.data"); /*string("dataset_regression.csv");*/
|
||||
|
||||
int code = cvtest::TS::OK;
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
|
||||
|
||||
int temp_code = TestTrainPredict(i);
|
||||
if (temp_code != cvtest::TS::OK)
|
||||
{
|
||||
code = temp_code;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
else if (i==0)
|
||||
{
|
||||
temp_code = TestSaveLoad();
|
||||
@@ -269,13 +269,13 @@ void CV_GBTreesTest::run(int)
|
||||
delete data;
|
||||
data = 0;
|
||||
}
|
||||
|
||||
|
||||
delete gtb;
|
||||
gtb = 0;
|
||||
}
|
||||
delete data;
|
||||
data = 0;
|
||||
|
||||
|
||||
ts->set_failed_test_info( code );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user