Quantcast
Channel: OpenCV Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 41027

OpenCV 3.0 Can't load neural network

$
0
0
I need to use a neural network in my OpenCV (version 3.0) project. I've created and trained neural network and it works, but if I want to load it from YML file, it doesn't predict. This is a code where I creat, train and save my neural network: FileStorage fs("nn.yml", FileStorage::WRITE); int input_neurons = 7; int hidden_neurons = 100; int output_neurons = 5; Ptr train_data = TrainData::loadFromCSV("data.csv", 10, 7, 12); Ptr neural_network = ANN_MLP::create(); neural_network->setTrainMethod(ANN_MLP::BACKPROP); neural_network->setBackpropMomentumScale(0.1); neural_network->setBackpropWeightScale(0.05); neural_network->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, (int)10000, 1e-6)); Mat layers = Mat(3, 1, CV_32SC1); layers.row(0) = Scalar(input_neurons); layers.row(1) = Scalar(hidden_neurons); layers.row(2) = Scalar(output_neurons); neural_network->setLayerSizes(layers); neural_network->setActivationFunction(ANN_MLP::SIGMOID_SYM, 1, 1); neural_network->train(train_data); if (neural_network->isTrained()) { neural_network->write(fs); cout << "It's OK!" << endl; } But next time, if I want to load it from YML file: Ptr neural_network = Algorithm::load("nn.yml", "neural_network"); I get the output: [-1.#IND, -1.#IND, -1.#IND, -1.#IND, -1.#IND] [-1.#IND, 1.0263158, 1.0263158, 1.0263158, 1.0263158] [1.0263158, 1.0263158, 1.0263158, 1.0263158, 1.0263158] [-1.#IND, -1.#IND, -1.#IND, -1.#IND, -1.#IND] Ptr neural_network = Algorithm::load("nn.yml"); This line cause that I get an error: OpenCV Error: Unspecified error (The node is neither a map nor an empty collecti on) in cvGetFileNodeByName, file C:\builds\master_PackSlave-win64-vc12-shared\op encv\modules\core\src\persistence.cpp, line 739 What am I doing wrong? Where is the problem?

Viewing all articles
Browse latest Browse all 41027

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>