【opencv】示例-neural

04-19 6142阅读 0评论

【opencv】示例-neural 第1张

#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 

免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,6142人围观)

还没有评论,来说两句吧...

目录[+]