{"id":18000230,"url":"https://github.com/fqwqf/faqnet","last_synced_at":"2026-01-26T11:39:43.554Z","repository":{"id":257865138,"uuid":"868735188","full_name":"fQwQf/faQnet","owner":"fQwQf","description":"faQnet /fɑːkjuːnet/是一个c++神经网络框架，它使用OpenCV库，并且使用单列矩阵储存输入输出。\"faQnet\"这个名字是\"flexible and Quick neural network\"的缩写，旨在实现一个强调灵活性和快速开发的神经网络框架，能够适应各种神经网络架构，同时提升开发效率。","archived":false,"fork":false,"pushed_at":"2024-10-29T13:54:19.000Z","size":1314,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-29T16:13:10.148Z","etag":null,"topics":["ai","cpp","opencv"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fQwQf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-07T05:00:51.000Z","updated_at":"2024-10-29T13:54:23.000Z","dependencies_parsed_at":"2024-10-20T10:49:11.752Z","dependency_job_id":null,"html_url":"https://github.com/fQwQf/faQnet","commit_stats":null,"previous_names":["fqwqf/faqnet"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fQwQf%2FfaQnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fQwQf%2FfaQnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fQwQf%2FfaQnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fQwQf%2FfaQnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fQwQf","download_url":"https://codeload.github.com/fQwQf/faQnet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245611804,"owners_count":20643899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cpp","opencv"],"created_at":"2024-10-29T23:10:39.908Z","updated_at":"2026-01-26T11:39:43.528Z","avatar_url":"https://github.com/fQwQf.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 项目描述\r\n\r\n![logo](./faQnet.png)\r\n\r\n**faQnet** /fɑːkjuːnet/是一个c++神经网络框架，它使用OpenCV库，并且使用单列矩阵储存输入输出。\"faQnet\"这个名字是\"flexible and Quick neural network\"的缩写，旨在实现一个强调灵活性和快速开发的神经网络框架，能够适应各种神经网络架构，同时提升开发效率。  \r\n\r\n# 安装和使用说明  \r\n1. 安装OpenCV库，并设置环境变量。\r\n2. 下载faQnet，解压到任意目录。\r\n3. 在需要使用faQnet的文件中，引用头文件/src/faQnet.h\t\r\n```c++\r\n\t#include \"/src/faQnet.h\"  \r\n```\r\n\r\n4. 在编译时，将/src/faQnet.cpp加入编译。  \r\n```shell\r\n\tg++ -o test test.cpp /src/faQnet.cpp  \r\n```\r\n\r\n现在，你就可以使用faQnet了！\r\n\r\n# 文档与学习  \r\n如果您想要学习框架的使用方法，请参考[用户文档](./docs/user_doc.md)。  \r\n如果您想要了解框架的内部原理，或者想要参与开发，请参考[开发文档](./docs/develop_doc.md)。  \r\n\r\n# 快速开始/示例和代码片段\r\n\r\n以下以/demo/Breast Cancer/Breast Cancer.cpp为例，展示如何使用faQnet。  \r\n\r\n1. 引用头文件\r\n```c++\r\n\t#include \"faQnet.h\"\r\n```\r\n\r\n值得一提的是，您无需引用任何C++ 标准模板库(STL)头文件，因为faQnet.h已经包含了所有STL头文件。  \r\n\r\n2. 导入数据  \r\n\t在faQnet中，数据以单列矩阵的形式导入。因此我们内置了`load_data()`函数，用于从csv文件中导入数据。  \r\n```c++\r\n\tstd::vector\u003ccv::Mat\u003e input =faQnet::load_data(\"wdbc.csv\", \t4, 33);\r\n\tstd::vector\u003ccv::Mat\u003e target = faQnet::load_data(\"wdbc.csv\", 2, 3);\r\n```\r\n\r\n3.  构建网络结构  \r\n\t在faQnet中，我们使用`faQnet::net`类来构建网络结构。您只需要将储存每一层节点数和激活函数类型的vector传入构造函数即可。  \r\n```c++\r\n\tstd::vector\u003cint\u003e layer_size = {30, 15, 2};\r\n\tstd::vector\u003cstd::string\u003e activation_function = {\"softsign\", \"leaky_relu\",\"none\"};\r\n\t\t\r\n\tfaQnet::net net(layer_size, activation_function);   \r\n```\r\n\r\n4. 初始化矩阵  \r\n\t在faQnet中，我们使用您构建的net对象的`init_bias()`和`init_weight()`方法来初始化偏置项矩阵和权值矩阵。只需传入初始化方法和对应参数即可。  \r\n```c++\r\n\tnet.init_bias(\"uniform\", -0.1, 0.1);\r\n\tnet.init_weight(\"normal\", 0, 0.5);\r\n```\r\n\r\n5. （可选）数据归一化预处理  \r\n\t在faQnet中，我们使用net对象的`normalize_preprocess_input()`方法对输入数据进行归一化预处理。  \r\n```c++\r\n\tnet.normalize_preprocess_input(input);\r\n```\r\n\r\n6. 训练网络  \r\n\t在faQnet中，我们使用net对象的`train()`方法对网络进行训练。只需传入输入数据、预期输出、学习率、训练次数、采用的损失函数即可。  \r\n```c++\r\n\tfor (int i = 0; i \u003c input.size()-100; i++){\r\n\t\tstd::cout \u003c\u003c \"训练数据：\" \u003c\u003c i+1 \u003c\u003c\"/\" \u003c\u003c input.size() \u003c\u003c std::endl;\r\n\t\tnet.train(input[i], target[i], 0.0001 ,10,\"ce\");\r\n\t}\r\n```\r\n\r\n7. 预测\r\n\t在faQnet中，我们使用net对象的`predict()`方法对数据进行预测。只需传入输入数据即可。同时，您还可以使用`faQnet::softmax()`函数对输出进行softmax处理。  \r\n```c++\r\n\tfor (int i = input.size()-100; i \u003c input.size(); i++){\r\n\t\tstd::cout \u003c\u003c \"预测数据：\" \u003c\u003c i-input.size()+101 \u003c\u003c\"/\" \u003c\u003c 100 ;\r\n\t\tstd::cout \u003c\u003c faQnet::softmax(net.predict(input[i])) \u003c\u003c std::endl;\r\n\t\tstd::cout \u003c\u003c \"实际数据：\" \u003c\u003c i-input.size()+101 \u003c\u003c\"/\" \u003c\u003c 100 ;\r\n\t\tstd::cout \u003c\u003c target[i] \u003c\u003c std::endl;\r\n\t}\r\n```\r\n\r\n# 项目结构和文件组织\r\n\r\n|文件/目录\t| 描述\t| 用途 |\r\n|-------|--------|------|\r\n|/src\t|源代码目录\t|存放项目的源代码|\r\n|/docs\t|文档目录\t|包含项目的文档和使用手册|\r\n|/demo\t|示例目录\t|存放项目示例|\r\n|/pics  |图片目录\t|存放项目图片|\r\n|README.md\t|项目说明文件\t|提供项目的基本信息和使用指南|\r\n\r\n# 联系信息\r\n如果你有任何问题或建议，请随时通过我的电子邮件\u003cfQwQf6@outlook.com\u003e或\u003csupertjz123@foxmail.com\u003e与我联系。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffqwqf%2Ffaqnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffqwqf%2Ffaqnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffqwqf%2Ffaqnet/lists"}