本项目提供一个使用 C++ 实现的一维回归神经网络示例,支持通过数据文件训练模型,并在终端中交互式预测输出值。
- 输入层 1 个特征(x),输出层 1 个值(y)。
- 支持 0~3 个隐藏层,每层最多 10 个神经元。
- 自动进行数据归一化处理,训练轮次不少于 200 次。
- 训练时按轮次打乱样本顺序,提升训练稳定性与收敛效果。
- 交互式输入新样本并输出预测结果与误差(保留 6 位小数)。
数据文件包含 n 行,每行两个浮点数,以 Tab 或空格分隔:
x<TAB>y
示例:
-1.0 2.5
0.0 3.0
1.0 4.1
在项目根目录下执行:
g++ -std=c++11 -Wall -Wextra -O2 main.cpp NeuralNetwork.cpp -o nn
执行可执行文件后,按照提示输入配置与数据文件路径:
./nn
程序会依次提示:
- 隐藏层数量(0-3)
- 每层神经元数量(1-10)
- 学习率
- 训练轮次(>=200)
- 数据文件路径
- 预测输入 x
- 真实 y 值(用于计算误差)
NeuralNetwork.h:神经网络类声明NeuralNetwork.cpp:神经网络实现main.cpp:交互式示例入口
本示例面向 Dev C++ 等常见 C++ 编译环境,代码结构清晰、注释齐全,适合教学与入门使用。