设为首页 加入收藏

TOP

单隐含层神经网络公式推导及C++实现 笔记(三)
2018-03-02 06:57:00 】 浏览:998
Tags:隐含 神经网络 公式 推导 实现 笔记
f (ret != 0) { fprintf(stderr, "single_hidden_layer(two categories) train fail: %d\n", ret); return -1; } return 0; } int test_single_hidden_layer_predict() { const std::string image_path{ "E:/GitCode/NN_Test/data/images/digit/handwriting_0_and_1/" }; cv::Mat data, labels, result; for (int i = 11; i < 21; ++i) { const std::vector label{ "0_", "1_" }; for (const auto& value : label) { std::string name = std::to_string(i); name = image_path + value + name + ".jpg"; cv::Mat image = cv::imread(name, 0); if (image.empty()) { fprintf(stderr, "read image fail: %s\n", name.c_str()); return -1; } data.push_back(image.reshape(0, 1)); } } data.convertTo(data, CV_32F); std::unique_ptr tmp(new int[20]); for (int i = 0; i < 20; ++i) { if (i % 2 == 0) tmp[i] = 0; else tmp[i] = 1; } labels = cv::Mat(20, 1, CV_32SC1, tmp.get()); CHECK(data.rows == labels.rows); const std::string model{ "E:/GitCode/NN_Test/data/single_hidden_layer.model" }; ANN::SingleHiddenLayer shl; int ret = shl.load_model(model); if (ret != 0) { fprintf(stderr, "load single_hidden_layer(two categories) model fail: %d\n", ret); return -1; } for (int i = 0; i < data.rows; ++i) { float probability = shl.predict((float*)(data.row(i).data), data.cols); fprintf(stdout, "probability: %.6f, ", probability); if (probability > 0.5) fprintf(stdout, "predict result: 1, "); else fprintf(stdout, "predict result: 0, "); fprintf(stdout, "actual result: %d\n", ((int*)(labels.row(i).data))[0]); } return 0; } 执行结果如下:由执行结果可知,测试图像全部分类正确。

\

首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇c++与C const变量的区别详解 下一篇C++中的引用(代码实例)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目