目录
一、先定义需要用到的结构
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

本文档主要介绍了BP算法的结构组成,包括输入层、隐藏层和输出层的定义,并详细探讨了BP算法的核心部分,目前处于实践阶段。
最低0.47元/天 解锁文章
2156

被折叠的 条评论
为什么被折叠?



