目录
一、先定义需要用到的结构
1、输入层
#pragma once
#ifndef INPUTLAYER_H
#define INPUTLAYER_H
#include"Header.h"
class InLayer {
public:
double bias = 1; //偏置
//double biasWeight;
double inputValue; // 训练的特征值
std::vector<double> weight; // 输入层单个神经元对隐藏层每个神经元的权重
};
#endif // !INPUTLAYER_H
2、隐藏层
#pragma once
#ifndef HIDDENLAYER_H
#define HIDDENLAYER_H
#include"Header.h"
class HiddenLayer {
public:
double bias = 1; //偏置
//double biasWeight;
double inputValue; // z = sum(weight * x)
double outputValue; // a = sigmoid(z)
std::vector<double> weight; // 隐藏层单个神经元对下一层每个神经元的权重
double delta = 0; // 单个神经元的激活项误差
};
#endif // !HIDDENLAYER_H
3、输出层
#pragma once
#ifndef OUTPUTLAYER_H
#define OPUTPUTLAYER_H
class OutLayer {
public:
double inputValue; // z = sum(weight * x)
double outputValue; // a = sigmoid(z),即预测输出
double label; // 训练的标签
double delta = 0; // 单个神经元的激活项误差
};
#endif // !INPUTLAYER_H