首页
/ SimpleNet 项目使用教程

SimpleNet 项目使用教程

2024-09-27 21:54:43作者:俞予舒Fleming

1. 项目目录结构及介绍

simple_net/
├── data/
│   └── examples/
├── include/
│   └── Net.h
├── models/
├── src/
│   ├── main.cpp
│   └── ...
├── .gitignore
├── LICENSE
└── README.md
  • data/: 存放数据文件,例如训练和测试数据。
  • include/: 包含项目的头文件,例如 Net.h
  • models/: 存放训练好的模型文件。
  • src/: 包含项目的源代码文件,例如 main.cpp
  • .gitignore: Git 忽略文件配置。
  • LICENSE: 项目许可证文件。
  • README.md: 项目说明文件。

2. 项目启动文件介绍

src/main.cpp

main.cpp 是项目的启动文件,包含了神经网络的初始化、训练和测试的主要逻辑。以下是文件的主要内容:

#include "../include/Net.h"
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;
using namespace liu;

int main(int argc, char *argv[]) {
    // 设置每一层的神经元数量
    vector<int> layer_neuron_num = {784, 100, 10};

    // 初始化网络和权重
    Net net;
    net.initNet(layer_neuron_num);
    net.initWeights(0, 0, 0.01);
    net.initBias(Scalar(0.5));

    // 获取训练样本和测试样本
    Mat input, label, test_input, test_label;
    int sample_number = 800;
    get_input_label("data/input_label_1000.xml", input, label, sample_number);
    get_input_label("data/input_label_1000.xml", test_input, test_label, 200, 800);

    // 设置损失阈值、学习率和激活函数
    float loss_threshold = 0.5;
    net.learning_rate = 0.3;
    net.output_interval = 2;
    net.activation_function = "sigmoid";

    // 训练网络并绘制损失曲线,测试训练好的网络
    net.train(input, label, loss_threshold, true);
    net.test(test_input, test_label);

    // 保存模型
    net.save("models/model_sigmoid_800_200.xml");

    getchar();
    return 0;
}

3. 项目配置文件介绍

data/input_label_1000.xml

data/input_label_1000.xml 是项目的配置文件之一,用于存储训练和测试数据的输入和标签。文件内容格式如下:

<data>
    <sample>
        <input>...</input>
        <label>...</label>
    </sample>
    ...
</data>

models/model_sigmoid_800_200.xml

models/model_sigmoid_800_200.xml 是训练好的模型文件,包含了神经网络的权重和偏置等信息。文件内容格式如下:

<model>
    <weights>...</weights>
    <biases>...</biases>
    ...
</model>

通过以上介绍,您可以更好地理解和使用 SimpleNet 项目。

登录后查看全文
热门项目推荐