Я пытался изменить параметры обучения, но это ничего не дало. Я попытался обработать меньший набор данных из 100 единиц, и в этом наборе мне удалось получить некоторые значения на выходном слое, но большинство из них по-прежнему являются Nan. Я просто не могу найти причину этого. Вот код модели машинного обучения:
Код: Выделить всё
cv::Ptr mlp = cv::ml::ANN_MLP::create();
mlp->setActivationFunction(cv::ml::ANN_MLP::SIGMOID_SYM, 1, 1);
int inputLayerSize = imagesData[0].total();
if (inputLayerSize > std::numeric_limits::max()) {
throw std::overflow_error("inputLayerSize exceeds the maximum value for int");
}
size_t hiddenLayerSize = 100;
size_t outputLayerSize = 10;
cv::Mat layers = (cv::Mat_(3, 1)setTermCriteria(termCrit);
mlp->setTrainMethod(cv::ml::ANN_MLP::BACKPROP, 0.001, 0.1);
mlp->train(trainingData, cv::ml::ROW_SAMPLE, labelData);
Подробнее здесь: https://stackoverflow.com/questions/793 ... cv-library
Мобильная версия