main.cpp

来自「很好用的BP神经网络类」· C++ 代码 · 共 59 行

CPP
59
字号
//////////////////////////////////////////////////////////////
//完成逻辑“与”运算
///////////////////////////////////////////////////////////////
#include "BPNet.h"
#include <iostream.h>
#include <STDIO.H>
void main()
{
    int i;
	//////////////创建学习样本//////////////////////////////////////////////
	double **StudyX;
	double **TeachY;
	StudyX=new double* [4];
	TeachY=new double* [4];
	for(i=0;i<4;i++)
	{
		StudyX[i]=new double [2];
		TeachY[i]=new double [1];
	}
	StudyX[0][0]=0;StudyX[0][1]=0;
	StudyX[1][0]=0;StudyX[1][1]=1;
	StudyX[2][0]=1;StudyX[2][1]=0;
	StudyX[3][0]=1;StudyX[3][1]=1;
    TeachY[0][0]=0;
	TeachY[1][0]=0;
	TeachY[2][0]=0;
	TeachY[3][0]=1;
	////////////////////////////////////////////////////////////

	////////////////学习/////////////////////////////////////////
	CBPNet bpnet;
	bpnet.CreateBPNet(NULL,2,5,1);//第一个参数为接收消息的窗口句柄,2为输入层神经元个数,5为隐层单元个数,1为输出层个数.
    bpnet.SetBPParameter(0.0001,0.1,0.7,VOGL);//第一个参数为允许的最小误差,0.1为学习步长,0.7为动量项系数,最后一个参数表示所用算法,VOGL为快速算法,NORMAL为一般算法。
	bpnet.SetStudySample(StudyX,TeachY,4);//StudyX为输入样本,TeachY为输出样本,它们都是2维指针。
    bpnet.Study();//开始学习。
	///////////////////////////////////////////////////////


	/////测试///////////////////////////////////////////
	double a[2],b;
	while(1)
	{
		char tag;
		cout<<"请输入测试数据:";
		cin>>a[0]>>a[1];
		bpnet.Test(a,&b);
		cout<<"测试结果:"<<a[0]<<'\t'<<a[1]<<'\t'<<b<<endl;
		cout<<"是否要继续测试(Y/N):";
		cin>>tag;
		if(tag=='N' || tag=='n')
			break;
	}
	///////////////////////////////////////////////////////
	
	delete[] StudyX;
	delete[] TeachY;
}

⌨️ 快捷键说明

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