⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bpnetwork.h

📁 神经网络中bp网络的实现 供大家参考
💻 H
字号:
// BpNetwork.h: interface for the CBpNetwork class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_BPNETWORK_H__635C5CD6_061B_4BDF_96A7_0DC80501D50D__INCLUDED_)
#define AFX_BPNETWORK_H__635C5CD6_061B_4BDF_96A7_0DC80501D50D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "matlib.h"

class CBpNetwork  
{
public:
	CBpNetwork();
	void create(Mm mInputData, Mm mTarget, int input, int hidden, int output);//创建网络
    double randData(double a, double b);//随机数
	virtual ~CBpNetwork();
    void stop();//停止训练
	void learn();//学习
private:
	int input;//输入个数
	int hidden;//隐层神经元个数
	int output;//输出个数
protected:
	Mm mInput;//单个样本输入数据
	Mm mSampleInput;//全体样本输入数据
	Mm mSampleTarget;//全体目标数据
    Mm mHidden;//计算得到的隐层数据
	Mm mOutput;//计算得到输出层的数据
	Mm mWeighti;//输入-隐层权重
	Mm mWeighto;//隐层-输出权重
protected:
	Mm mThresholdi;//偏置值
	Mm mThresholdo;
	Mm mOutputDeltas;//误差
	Mm mHiddenDeltas;
protected:
	bool m_isOk;
	bool m_isStop;
	double learnRate1;//学习速度
	double learnRate2;
protected:
	void backward(int iSample);//反向传播
	void forward(int iSample);//前馈
    double f(double temp);//激活函数
	double f_1(double temp);//激活函数导数
	void save();//保存权值和偏置值
	Mm changeMm(Mm temp);//矩阵转置
private:
	double dblError;//误差
	double dblMse;//误差限
};

#endif // !defined(AFX_BPNETWORK_H__635C5CD6_061B_4BDF_96A7_0DC80501D50D__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -