/
Alx89
/
OpenCV
Обзор
Документация
Войти
/
Alx89
/
OpenCV
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
4.x
modules/ml/test/test_bayes.cpp
56 строк
1 KB
Maksim Shabunin
Merge pull request #15959 from mshabunin:refactor-ml-tests
25 ноя 2019, 23:03
25 ноя 2019, 23:03
5ff1fab
Код
Авторство
О чём код?
// This file is part of OpenCV project. // It is subject to the license terms in the LICENSE file found in the top-level directory // of this distribution and at http://opencv.org/license.html. #include "test_precomp.hpp" namespace opencv_test { namespace { TEST(ML_NBAYES, regression_5911) { int N=12; Ptr<ml::NormalBayesClassifier> nb = cv::ml::NormalBayesClassifier::create(); // data: float X_data[] = { 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 5,5,5,5, 5,5,5,5, 5,5,5,5, 5,5,5,5, 4,3,2,1, 4,3,2,1, 4,3,2,1, 4,3,2,1 }; Mat_<float> X(N, 4, X_data); // labels: int Y_data[] = { 0,0,0,0, 1,1,1,1, 2,2,2,2 }; Mat_<int> Y(N, 1, Y_data); nb->train(X, ml::ROW_SAMPLE, Y); // single prediction: Mat R1,P1; for (int i=0; i<N; i++) { Mat r,p; nb->predictProb(X.row(i), r, p); R1.push_back(r); P1.push_back(p); } // bulk prediction (continuous memory): Mat R2,P2; nb->predictProb(X, R2, P2); EXPECT_EQ(255 * R2.total(), sum(R1 == R2)[0]); EXPECT_EQ(255 * P2.total(), sum(P1 == P2)[0]); // bulk prediction, with non-continuous memory storage Mat R3_(N, 1+1, CV_32S), P3_(N, 3+1, CV_32F); nb->predictProb(X, R3_.col(0), P3_.colRange(0,3)); Mat R3 = R3_.col(0).clone(), P3 = P3_.colRange(0,3).clone(); EXPECT_EQ(255 * R3.total(), sum(R1 == R3)[0]); EXPECT_EQ(255 * P3.total(), sum(P1 == P3)[0]); } }} // namespace