神经网络一个简单实例.docx

神经网络一个简单实例.docx

ID:59142497

大小:112.49 KB

页数:6页

时间:2020-09-11

神经网络一个简单实例.docx_第1页
神经网络一个简单实例.docx_第2页
神经网络一个简单实例.docx_第3页
神经网络一个简单实例.docx_第4页
神经网络一个简单实例.docx_第5页
资源描述:

《神经网络一个简单实例.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OpenCV的ml模块实现了人工神经网络(ArtificialNeuralNetworks,ANN)最典型的多层感知器(multi-layerperceptrons,MLP)模型。由于ml模型实现的算法都继承自统一的CvStatModel基类,其训练和预测的接口都是train(),predict(),非常简单。下面来看神经网络 CvANN_MLP 的使用~定义神经网络及参数:[cpp] viewplain copy 1.//Setup the BPNetwork  2.    CvANN_MLP bp;   3.  

2、  // Set up BPNetwork's parameters  4.    CvANN_MLP_TrainParams params;  5.    params.train_method=CvANN_MLP_TrainParams::BACKPROP;  6.    params.bp_dw_scale=0.1;  7.    params.bp_moment_scale=0.1;  8.    //params.train_method=CvANN_MLP_TrainParams::RPROP;  9. 

3、   //params.rp_dw0 = 0.1;   10.    //params.rp_dw_plus = 1.2;   11.    //params.rp_dw_minus = 0.5;  12.    //params.rp_dw_min = FLT_EPSILON;   13.    //params.rp_dw_max = 50.;  可以直接定义CvANN_MLP神经网络,并设置其参数。 BACKPROP表示使用back-propagation的训练方法,RPROP即最简单的propagation训

4、练方法。使用BACKPROP有两个相关参数:bp_dw_scale即bp_moment_scale:使用PRPOP有四个相关参数:rp_dw0,rp_dw_plus,rp_dw_minus,rp_dw_min,rp_dw_max:上述代码中为其默认值。设置网络层数,训练数据:[cpp] viewplain copy 1.// Set up training data  2.    float labels[3][5] = {{0,0,0,0,0},{1,1,1,1,1},{0,0,0,0,0}};  3.    Ma

5、t labelsMat(3, 5, CV_32FC1, labels);  4.  5.    float trainingData[3][5] = { {1,2,3,4,5},{111,112,113,114,115}, {21,22,23,24,25} };  6.    Mat trainingDataMat(3, 5, CV_32FC1, trainingData);  7.    Mat layerSizes=(Mat_(1,5) << 5,2,2,2,5);  8.    bp.create(l

6、ayerSizes,CvANN_MLP::SIGMOID_SYM);//CvANN_MLP::SIGMOID_SYM  9.                                               //CvANN_MLP::GAUSSIAN  10.                                               //CvANN_MLP::IDENTITY  11.    bp.train(trainingDataMat, labelsMat, Mat(),Mat(),

7、 params);  layerSizes设置了有三个隐含层的网络结构:输入层,三个隐含层,输出层。输入层和输出层节点数均为5,中间隐含层每层有两个节点。create第二个参数可以设置每个神经节点的激活函数,默认为CvANN_MLP::SIGMOID_SYM,即Sigmoid函数,同时提供的其他激活函数有Gauss和阶跃函数。使用训练好的网络结构分类新的数据:然后直接使用predict函数,就可以预测新的节点:[cpp] viewplain copy 1.Mat sampleMat = (Mat_(1,

8、5) << i,j,0,0,0);  2.            Mat responseMat;  3.            bp.predict(sampleMat,responseMat);  完整程序代码:[cpp] viewplain copy 1.//The example of using BPNetwork in OpenCV

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。