BP神经网络算法(2)

时间:2023-01-09 11:17:40

 

//BpNet.h: interface for the Bp class.
BP神经网络算法(2)
// 2006.8.8 by 曾志军 版权所有  
BP神经网络算法(2)
//E-Mail:zengzhijun369@163.com
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)#include "stdafx.h"
BP神经网络算法(2)#include 
"BpNet.h"
BP神经网络算法(2)#include 
"math.h"
BP神经网络算法(2)
BP神经网络算法(2)#ifdef _DEBUG
BP神经网络算法(2)
#undef THIS_FILE
BP神经网络算法(2)
static char THIS_FILE[]=__FILE__;
BP神经网络算法(2)
#define new DEBUG_NEW
BP神经网络算法(2)
#endif
BP神经网络算法(2)
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)// Construction/Destruction
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)BpNet::BpNet()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){       
BP神经网络算法(2)    error
=1.0;
BP神经网络算法(2)    e
=0.0;
BP神经网络算法(2)    
BP神经网络算法(2)    rate_w
=0.05;  //权值学习率(输入层--隐含层)
BP神经网络算法(2)
    rate_w1=0.047//权值学习率 (隐含层--输出层)
BP神经网络算法(2)
    rate_b1=0.05//隐含层阀值学习率
BP神经网络算法(2)
    rate_b2=0.047//输出层阀值学习率
BP神经网络算法(2)
    error=1.0;
BP神经网络算法(2)    e
=0.0;
BP神经网络算法(2)    
BP神经网络算法(2)    rate_w
=0.05;  //权值学习率(输入层--隐含层)
BP神经网络算法(2)
    rate_w1=0.047//权值学习率 (隐含层--输出层)
BP神经网络算法(2)
    rate_b1=0.05//隐含层阀值学习率
BP神经网络算法(2)
    rate_b2=0.047//输出层阀值学习率
BP神经网络算法(2)
}

BP神经网络算法(2)
BP神经网络算法(2)BpNet::
~BpNet()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
void winit(double w[],int sl)//权值初始化
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){int i;
BP神经网络算法(2)
double randx();
BP神经网络算法(2)BP神经网络算法(2)
for(i=0;i<sl;i++)BP神经网络算法(2){
BP神经网络算法(2)    
*(w+i)=0.2*randx();
BP神经网络算法(2)}

BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
double randx()//kqy error
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){double d;
BP神经网络算法(2)d
=(double) rand()/32767.0;
BP神经网络算法(2)
return d;
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::init()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    winit((
double*)w,innode*hidenode);
BP神经网络算法(2)    winit((
double*)w1,hidenode*outnode);
BP神经网络算法(2)    winit(b1,hidenode);
BP神经网络算法(2)    winit(b2,outnode);
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::train(double p[trainsample][innode],double t[trainsample][outnode])
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    
double pp[hidenode];//隐含结点的校正误差
BP神经网络算法(2)
    double qq[outnode];//希望输出值与实际输出值的偏差
BP神经网络算法(2)
    double yd[outnode];//希望输出值
BP神经网络算法(2)
    
BP神经网络算法(2)    
double x[innode]; //输入向量
BP神经网络算法(2)
    double x1[hidenode];//隐含结点状态值
BP神经网络算法(2)
    double x2[outnode];//输出结点状态值
BP神经网络算法(2)
    double o1[hidenode];//隐含层激活值
BP神经网络算法(2)
    double o2[hidenode];//输出层激活值
BP神经网络算法(2)
    for(int isamp=0;isamp<trainsample;isamp++)//循环训练一次样品
BP神经网络算法(2)BP神经网络算法(2)
    BP神经网络算法(2)
BP神经网络算法(2)        
for(int i=0;i<innode;i++)
BP神经网络算法(2)            x[i]
=p[isamp][i];
BP神经网络算法(2)        
for(i=0;i<outnode;i++)
BP神经网络算法(2)            yd[i]
=t[isamp][i];
BP神经网络算法(2)        
BP神经网络算法(2)        
//构造每个样品的输入和输出标准
BP神经网络算法(2)
        for(int j=0;j<hidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            o1[j]
=0.0;
BP神经网络算法(2)            
BP神经网络算法(2)            
for(i=0;i<innode;i++)
BP神经网络算法(2)                o1[j]
=o1[j]+w[i][j]*x[i];//隐含层各单元输入激活值
BP神经网络算法(2)
            x1[j]=1.0/(1+exp(-o1[j]-b1[j]));//隐含层各单元的输出kqy1
BP神经网络算法(2)            
//    if(o1[j]+b1[j]>0) x1[j]=1;
BP神经网络算法(2)            
//else x1[j]=0;
BP神经网络算法(2)
        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(int k=0;k<outnode;k++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            o2[k]
=0.0;
BP神经网络算法(2)            
BP神经网络算法(2)            
for(j=0;j<hidenode;j++)
BP神经网络算法(2)                o2[k]
=o2[k]+w1[j][k]*x1[j];//输出层各单元输入激活值
BP神经网络算法(2)
            x2[k]=1.0/(1.0+exp(-o2[k]-b2[k]));//输出层各单元输出
BP神经网络算法(2)            
//    if(o2[k]+b2[k]>0) x2[k]=1;
BP神经网络算法(2)            
//    else x2[k]=0;
BP神经网络算法(2)
        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(k=0;k<outnode;k++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            e
=0.0;
BP神经网络算法(2)            qq[k]
=(yd[k]-x2[k])*x2[k]*(1.-x2[k]);//希望输出与实际输出的偏差
BP神经网络算法(2)
            e+=fabs(yd[k]-x2[k])*fabs(yd[k]-x2[k]);//计算均方差
BP神经网络算法(2)
            
BP神经网络算法(2)            
for(j=0;j<hidenode;j++)
BP神经网络算法(2)                w1[j][k]
=w1[j][k]+rate_w1*qq[k]*x1[j];//下一次的隐含层和输出层之间的新连接权
BP神经网络算法(2)
            e=sqrt(e);
BP神经网络算法(2)            error
=e;
BP神经网络算法(2)        
BP神经网络算法(2)        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(j=0;j<hidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            pp[j]
=0.0;
BP神经网络算法(2)            
for(k=0;k<outnode;k++)
BP神经网络算法(2)                pp[j]
=pp[j]+qq[k]*w1[j][k];
BP神经网络算法(2)            pp[j]
=pp[j]*x1[j]*(1-x1[j]);//隐含层的校正误差
BP神经网络算法(2)
            
BP神经网络算法(2)            
for(i=0;i<innode;i++)
BP神经网络算法(2)                w[i][j]
=w[i][j]+rate_w*pp[j]*x[i];//下一次的输入层和隐含层之间的新连接权
BP神经网络算法(2)
        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(k=0;k<outnode;k++)
BP神经网络算法(2)            b2[k]
=b2[k]+rate_b2*qq[k];//下一次的隐含层和输出层之间的新阈值
BP神经网络算法(2)
        for(j=0;j<hidenode;j++)
BP神经网络算法(2)            b1[j]
=b1[j]+rate_b1*pp[j];//下一次的输入层和隐含层之间的新阈值
BP神经网络算法(2)
        
BP神经网络算法(2)    }
//end isamp样品循环
BP神经网络算法(2)
    
BP神经网络算法(2)}

BP神经网络算法(2)BP神经网络算法(2)
/**////////////////////////////end train/////////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)
/////////////////////////////////////////////////////////////////

BP神经网络算法(2)
BP神经网络算法(2)
double *BpNet::recognize(double *p)
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){   
BP神经网络算法(2)    
double x[innode]; //输入向量
BP神经网络算法(2)
    double x1[hidenode];//隐含结点状态值
BP神经网络算法(2)
    double x2[outnode];//输出结点状态值
BP神经网络算法(2)
    double o1[hidenode];//隐含层激活值
BP神经网络算法(2)
    double o2[hidenode];//输出层激活值
BP神经网络算法(2)

BP神经网络算法(2)    
for(int i=0;i<innode;i++)
BP神经网络算法(2)        x[i]
=p[i];
BP神经网络算法(2)    
for(int j=0;j<hidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        o1[j]
=0.0;
BP神经网络算法(2)        
BP神经网络算法(2)        
for(int i=0;i<innode;i++)
BP神经网络算法(2)            o1[j]
=o1[j]+w[i][j]*x[i];//隐含层各单元激活值
BP神经网络算法(2)
        x1[j]=1.0/(1.0+exp(-o1[j]-b1[j]));//隐含层各单元输出
BP神经网络算法(2)        
//if(o1[j]+b1[j]>0) x1[j]=1;
BP神经网络算法(2)        
//    else x1[j]=0;
BP神经网络算法(2)
    }

BP神经网络算法(2)    
BP神经网络算法(2)    
for(int k=0;k<outnode;k++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        o2[k]
=0.0;
BP神经网络算法(2)        
for(int j=0;j<hidenode;j++)
BP神经网络算法(2)            o2[k]
=o2[k]+w1[j][k]*x1[j];//输出层各单元激活值
BP神经网络算法(2)
        x2[k]=1.0/(1.0+exp(-o2[k]-b2[k]));//输出层各单元输出
BP神经网络算法(2)        
//if(o2[k]+b2[k]>0) x2[k]=1;
BP神经网络算法(2)        
//else x2[k]=0;
BP神经网络算法(2)
    }
 
BP神经网络算法(2)    
BP神经网络算法(2)    
for(k=0;k<outnode;k++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        shuchu[k]
=x2[k];
BP神经网络算法(2)    }
 
BP神经网络算法(2)    
return shuchu;
BP神经网络算法(2)BP神经网络算法(2)}
/**/////////////////////////////end sim///////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::writetrain()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){//曾志军 for 2006.7
BP神经网络算法(2)
    AfxMessageBox("你还没有训练呢,训练后再写吧!请不要乱写,除非你认为这次训练是最好的,否则会覆盖我训练好的权值,那样你又要花时间训练!");
BP神经网络算法(2)    AfxMessageBox(
"你认为这次训练结果是最好的,就存下来,下次就不要花时间训练了!",MB_YESNO,NULL);
BP神经网络算法(2)    FILE 
*stream0;
BP神经网络算法(2)    FILE 
*stream1;
BP神经网络算法(2)    FILE 
*stream2;
BP神经网络算法(2)    FILE 
*stream3;
BP神经网络算法(2)    
int i,j;
BP神经网络算法(2)BP神经网络算法(2)    
/**/////////////////////////
BP神经网络算法(2)    if(( stream0 = fopen("w.txt""w+" ))==NULL)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        AfxMessageBox(
"创建文件失败!");
BP神经网络算法(2)    }

BP神经网络算法(2)    
for(i=0;i<innode;i++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        
for(j=0;j<hidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            
BP神经网络算法(2)            fprintf(stream0, 
"%f\n", w[i][j]);
BP神经网络算法(2)        }

BP神经网络算法(2)        
BP神经网络算法(2)    }

BP神经网络算法(2)    fclose( stream0);
BP神经网络算法(2)BP神经网络算法(2)    
/**////////////////////////////////////
BP神经网络算法(2)    if(( stream1 = fopen("w1.txt""w+" ))==NULL)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        AfxMessageBox(
"创建文件失败!");
BP神经网络算法(2)    }

BP神经网络算法(2)    
for(i=0;i<hidenode;i++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        
for(j=0;j<outnode;j++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            fprintf(stream1, 
"%f\n",w1[i][j]);
BP神经网络算法(2)        }

BP神经网络算法(2)        
BP神经网络算法(2)    }

BP神经网络算法(2)    fclose( stream1);
BP神经网络算法(2)BP神经网络算法(2)    
/**/////////////////////////////
BP神经网络算法(2)    if(( stream2 = fopen("b1.txt""w+" ))==NULL)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        AfxMessageBox(
"创建文件失败!");
BP神经网络算法(2)    }

BP神经网络算法(2)        
for(i=0;i<hidenode;i++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        fprintf(stream2, 
"%f\n",b1[i]);
BP神经网络算法(2)        
BP神经网络算法(2)        
BP神经网络算法(2)    }

BP神经网络算法(2)    fclose( stream2);
BP神经网络算法(2)BP神经网络算法(2)    
/**//////////////////////////
BP神经网络算法(2)    if(( stream3 = fopen("b2.txt""w+" ))==NULL)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        AfxMessageBox(
"创建文件失败!");
BP神经网络算法(2)    }

BP神经网络算法(2)    
for(i=0;i<outnode;i++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        fprintf(stream3, 
"%f\n",b2[i]);
BP神经网络算法(2)        
BP神经网络算法(2)        
BP神经网络算法(2)    }

BP神经网络算法(2)    fclose( stream3);
BP神经网络算法(2)    
BP神经网络算法(2)    
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::readtrain()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    
//曾志军 for 2006.7
BP神经网络算法(2)
    AfxMessageBox("读入已训练好的权值,这样你就不要花时间训练了!",MB_YESNO,NULL);
BP神经网络算法(2)    FILE 
*stream0;
BP神经网络算法(2)    FILE 
*stream1;
BP神经网络算法(2)    FILE 
*stream2;
BP神经网络算法(2)    FILE 
*stream3;
BP神经网络算法(2)    
int i,j;
BP神经网络算法(2)BP神经网络算法(2)    
/**//////////////////
BP神经网络算法(2)    if(( stream0 = fopen("w.txt""r" ))==NULL)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        AfxMessageBox(
"文件不存在,请先写入权值,再读!");
BP神经网络算法(2)    }

BP神经网络算法(2)    
BP神经网络算法(2)    
float  wx[innode][hidenode];
BP神经网络算法(2)    
for(i=0;i<innode;i++)
BP神经网络算法(2)        
for(j=0;j<hidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            fscanf(stream0, 
"%f"&wx[i][j]);
BP神经网络算法(2)            w[i][j]
=wx[i][j];
BP神经网络算法(2)        }

BP神经网络算法(2)    fclose( stream0);
BP神经网络算法(2)BP神经网络算法(2)    
/**////////////////////////////////////////////////    
BP神经网络算法(2)    if(( stream1 = fopen("w1.txt""r" ))==NULL)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            AfxMessageBox(
"文件不存在,请先写入权值,再读!");
BP神经网络算法(2)        }

BP神经网络算法(2)         
float  wx1[hidenode][outnode]; 
BP神经网络算法(2)        
for(i=0;i<hidenode;i++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            
for(j=0;j<outnode;j++)
BP神经网络算法(2)BP神经网络算法(2)            
BP神经网络算法(2){
BP神经网络算法(2)                fscanf(stream1, 
"%f"&wx1[i][j]);
BP神经网络算法(2)                w1[i][j]
=wx1[i][j];
BP神经网络算法(2)            }

BP神经网络算法(2)            
BP神经网络算法(2)        }

BP神经网络算法(2)        fclose( stream1);
BP神经网络算法(2)        
BP神经网络算法(2)BP神经网络算法(2)        
/**////////////////////
BP神经网络算法(2)        if(( stream2 = fopen("b1.txt""r" ))==NULL)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            AfxMessageBox(
"文件不存在,请先写入权值,再读!");
BP神经网络算法(2)        }

BP神经网络算法(2)        
float xb1[hidenode];    
BP神经网络算法(2)        
for(i=0;i<hidenode;i++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            fscanf(stream2, 
"%f",&xb1[i]);
BP神经网络算法(2)            b1[i]
=xb1[i];
BP神经网络算法(2)        }

BP神经网络算法(2)        fclose( stream2);
BP神经网络算法(2)BP神经网络算法(2)        
/**///////////////////////////
BP神经网络算法(2)        if(( stream3 = fopen("b2.txt""r" ))==NULL)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            AfxMessageBox(
"文件不存在,请先写入权值,再读!");
BP神经网络算法(2)        }

BP神经网络算法(2)        
float xb2[outnode];  
BP神经网络算法(2)        
for(i=0;i<outnode;i++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            fscanf(stream3, 
"%f",&xb2[i]);
BP神经网络算法(2)            b2[i]
=xb2[i];
BP神经网络算法(2)        }

BP神经网络算法(2)        
BP神经网络算法(2)        fclose( stream3);
BP神经网络算法(2)BP神经网络算法(2)        
/**//*CFile TheFile("w.txt",CFile::modeRead);
BP神经网络算法(2)        CArchive ar(&TheFile,CArchive::load,40960);
BP神经网络算法(2)        TheFile.SeekToBegin();
BP神经网络算法(2)        int i,j;
BP神经网络算法(2)        for(i=0;i<innode;i++)
BP神经网络算法(2)        {
BP神经网络算法(2)        for(j=0;j<hidenode;j++)
BP神经网络算法(2)        {   
BP神经网络算法(2)        ar>>w[i][j];
BP神经网络算法(2)        
BP神经网络算法(2)          }
BP神经网络算法(2)          
BP神经网络算法(2)            }
BP神经网络算法(2)            ar.Close();
BP神经网络算法(2)        TheFile.Close();
*/

BP神经网络算法(2)        
BP神经网络算法(2)}

BP神经网络算法(2)
//BpNet.h: interface for the Bp class.
BP神经网络算法(2)
// 2006.8.8 by 曾志军 版权所有  
BP神经网络算法(2)
//E-Mail:zengzhijun369@163.com
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)
#if !defined(AFX_BPNET_H__3A171E41_1E8B_11D7_BA67_936006E9954B__INCLUDED_)
BP神经网络算法(2)
#define AFX_BPNET_H__3A171E41_1E8B_11D7_BA67_936006E9954B__INCLUDED_
BP神经网络算法(2)
BP神经网络算法(2)
#if _MSC_VER > 1000
BP神经网络算法(2)
#pragma once
BP神经网络算法(2)
#endif // _MSC_VER > 1000
BP神经网络算法(2)
BP神经网络算法(2)
BP神经网络算法(2)
#define  innode 5  //输入结点数
BP神经网络算法(2)
#define  hidenode 10//隐含结点数
BP神经网络算法(2)
#define  outnode 4 //输出结点数
BP神经网络算法(2)
#define  trainsample 500//BP训练样本为10个
BP神经网络算法(2)
class BpNet  
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)
public:
BP神经网络算法(2)    
void train(double p[trainsample][innode ],double t[trainsample][outnode]);//Bp训练
BP神经网络算法(2)    
//double p[trainsample][innode]     //输入的样本
BP神经网络算法(2)    
//double t[trainsample][outnode]//样本要输出的
BP神经网络算法(2)    
//Bp训练前要调用readtemplate()
BP神经网络算法(2)
    double *recognize(double *p);//Bp识别
BP神经网络算法(2)
    
BP神经网络算法(2)    
void writetrain();//写训练完的权值
BP神经网络算法(2)
    void readtrain();//读训练好的权值,这使的不用每次去训练了,只要把训练最好的权值存下来writetrain()就OK!
BP神经网络算法(2)
    
BP神经网络算法(2)    BpNet();
BP神经网络算法(2)    
virtual ~BpNet();
BP神经网络算法(2)
BP神经网络算法(2)
BP神经网络算法(2)
public:
BP神经网络算法(2)    
void init();
BP神经网络算法(2)    
double w[innode][hidenode];//隐含结点权值
BP神经网络算法(2)
    double w1[hidenode][outnode];//输出结点权值
BP神经网络算法(2)
    double b1[hidenode];//隐含结点阀值
BP神经网络算法(2)
    double b2[outnode];//输出结点阀值
BP神经网络算法(2)
    
BP神经网络算法(2)    
double rate_w; //权值学习率(输入层-隐含层)
BP神经网络算法(2)
    double rate_w1;//权值学习率 (隐含层-输出层)
BP神经网络算法(2)
    double rate_b1;//隐含层阀值学习率
BP神经网络算法(2)
    double rate_b2;//输出层阀值学习率
BP神经网络算法(2)

BP神经网络算法(2)    
BP神经网络算法(2)    
double e;//误差计算
BP神经网络算法(2)
    double error;//允许的最大误差
BP神经网络算法(2)
    double shuchu[outnode];// Bp输出
BP神经网络算法(2)
    
BP神经网络算法(2)
BP神经网络算法(2)}
;
BP神经网络算法(2)
BP神经网络算法(2)
#endif // !defined(AFX_BPNET_H__3A171E41_1E8B_11D7_BA67_936006E9954B__INCLUDED_)
BP神经网络算法(2)

全文参考:http://www.cnblogs.com/demon521/archive/2008/04/07/1140359.html