将神经网络与 opencv 3.1.0 结合使用
Using Neural Network with opencv 3.1.0
我正在尝试使用 OpenCV 3.1.0 实现神经网络。预测时,我得到一个值为 -1.#QNAN 的向量。我做错了什么?
// train
Ptr<ANN_MLP> ann = ml::ANN_MLP::create();
Mat layers(1, 3, CV_32F);
layers.at<float>(0) = features.cols;
layers.at<float>(1) = nlayers;
layers.at<float>(2) = numLabels;
ann->setActivationFunction(ANN_MLP::SIGMOID_SYM);
ann->setLayerSizes(layers);
Mat trainClasses;
trainClasses.create(features.rows, numLabels, CV_32F);
for (int i = 0; i < trainClasses.rows; i++)
{
for (int k = 0; k < trainClasses.cols; k++)
{
if (k == labels[i])
trainClasses.at<float>(i, k) = 1;
else
trainClasses.at<float>(i, k) = 0;
}
}
Mat weights(1, features.rows, CV_32F, Scalar::all(1));
Ptr<TrainData> tdata = TrainData::create(features, ROW_SAMPLE,
trainClasses, Mat(), Mat(), weights, Mat());
ann->train(tdata);
// predict
Mat output(1, numLabels, CV_32F);
ann->predict(test_data, output);
我是
神经网络的新手,但我想你的输入层应该有等于整体属性大小的神经元。
假设您有 5 张 10*10 大小的图像用于训练,那么您应该为每个像素提供输入神经元。也就是说,5*10*10 = 500。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 神经网络不学习.卡在50%
- OpenCV 3 中的神经网络权重
- 用 Python 训练神经网络并在 C++ 中部署
- 部署在张量流中训练的神经网络来火炬C++的最佳方法是什么?
- 我不确定如何引用此神经网络训练方法中的权重
- 如何在不同的平台/技术中使用经过训练的神经网络?
- 为什么我的神经网络停滞在一定的成本附近?
- 具有静态 std::array 的神经网络比使用动态 C 数组的神经网络慢
- 为什么小型和大型加载的神经网络占用相同数量的 RAM?
- 一维阵列的运动检测(神经网络或其他选项?
- 神经网络和图像分类
- 使用在R中训练的神经网络来预测C 中的新数据
- 神经网络高估了手写数字的输出
- 如何将可重读的神经网络导出到C 中的文件
- 如何在C++程序中连接 MATLAB 中构建的经过训练的神经网络
- 为什么 dlib 的神经网络 xml 导出包含的层参数与训练器指定的参数不同?
- 如何在Caffe中对复发性卷积神经网络进行建模
- Caffe Imagedata神经网络基本示例无法解析模型文件
- 将神经网络与 opencv 3.1.0 结合使用