OpenCV 3.0 Não é possível carregar a rede neural

Preciso usar uma rede neural no meu projeto OpenCV (versão 3.0). Eu criei e treinei rede neural e funciona, mas se eu quiser carregar a rede neural a partir do arquivo YML, isso não é previsto.

Este é um código em que eu crio, treino e salvo minha rede neural:

FileStorage fs("nn.yml", FileStorage::WRITE);

int input_neurons = 7;
int hidden_neurons = 100;
int output_neurons = 5;

Ptr<TrainData> train_data = TrainData::loadFromCSV("data.csv", 10, 7, 12);

Ptr<ANN_MLP> 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; 
}

Mas da próxima vez, se eu quiser carregá-lo do arquivo YML:

Ptr<ANN_MLP> neural_network = Algorithm::load<ANN_MLP>("nn.yml", "neural_network");

Eu recebo a saída:

[-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<ANN_MLP> neural_network = Algorithm::load<ANN_MLP>("nn.yml");

Esta linha faz com que eu receba um erro:

Erro OpenCV: erro não especificado (o nó não é um mapa nem uma coleta vazia) em cvGetFileNodeByName, arquivo C: \ builds \ master_PackSlave-win64-vc12-shared \ encv \ modules \ core \ src \ persistence.cpp, linha 739

O que estou fazendo errado? Onde está o problema?

questionAnswers(1)

yourAnswerToTheQuestion