【opencv】示例-neural
#include // 引入OpenCV的机器学习模块 using namespace std; // 使用标准命名空间 using namespace cv; // 使用OpenCV命名空间 using namespace cv::ml; // 使用OpenCV机器学习命名空间 int main() { //创建随机训练数据 Mat_ data(100, 100); // 申请100行100列的浮点数矩阵作为数据 randn(data, Mat::zeros(1, 1, data.type()), Mat::ones(1, 1, data.type())); // 用正态分布随机填充数据,均值为0,方差为1 //为每个类别创建一半的样本 Mat_ responses(data.rows, 2); // 申请与data行数相同,2列的浮点数矩阵作为响应(输出) for (int i = 0; isetActivationFunction(ANN_MLP::SIGMOID_SYM, 0.1, 0.1); // 设置激活函数为对称S型函数,激活参数为0.1 network->setTrainMethod(ANN_MLP::BACKPROP, 0.1, 0.1); // 设置训练方法为反向传播,学习率和动量都为0.1 Ptr trainData = TrainData::create(data, ROW_SAMPLE, responses); // 利用数据和响应创建训练数据 network->train(trainData); // 使用训练数据训练网络 if (network->isTrained()) // 如果网络训练好了 { printf("Predict one-vector:\n"); // 打印预测一个向量 Mat result; // 用于保存预测结果的矩阵 network->predict(Mat::ones(1, data.cols, data.type()), result); // 预测一个全1向量的输出 cout
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...