文档详情

c语言版bp神经网络.doc

发布:2017-08-10约8.75千字共8页下载文档
文本预览下载声明
看到学生用Matlab做了BP神经网络应用的程序,突然想起自己在上学时写了个BP的C语言版,现在真不知道当时是怎么写出来的,这里放上来做一个纪念。 #includestdio.h #includestdlib.h #includemath.h #includeconio.h #includectype.h #includestring.h #includetime.h #define MAXWEIGHT ((float)0.3) #define SCALEWEIGHT ((float)32767) #define nInputNodes 4 #define nHiddenNodes 8 #define nOutputNodes 3 #define nPatterns 15 #define nIterations 5000 #define ESC 27 #define ERRORLEVEL 0.0001 #define ITEMS 8 typedef float *PFLOAT; typedef PFLOAT VECTOR; typedef PFLOAT *MATRIX; void VectorAllocate(VECTOR *vector,int nCols); void AllocateCols(PFLOAT matrix[],int nRows,int nCols); void MatrixAllocate(MATRIX *pmatrix,int nRows,int nCols); void MatrixFree(MATRIX matrix,int nRows); MATRIX out0; MATRIX out1; MATRIX delta1; MATRIX delw1; MATRIX w1; MATRIX out2; MATRIX delta2; MATRIX delw2; MATRIX w2; MATRIX target; //VECTOR PatternID; void main() { float eta =0.15, alpha=0.075; int nReportErrors=100; float ErrorLevel=ERRORLEVEL; char MonitorError=0; float error; register int h; register int i; register int j; int p, q; // r; FILE *fpPattern, *fpWeightsOut, *fpResults, *fpError, *fpTest; MatrixAllocate(out0, nPatterns, nInputNodes); MatrixAllocate(out1, nPatterns, nHiddenNodes); MatrixAllocate(out2, nPatterns, nOutputNodes); MatrixAllocate(delta2,nPatterns, nOutputNodes); MatrixAllocate(delw2, nOutputNodes, nHiddenNodes+1); MatrixAllocate(w2, nOutputNodes, nHiddenNodes+1); MatrixAllocate(delta1, nPatterns, nHiddenNodes); MatrixAllocate(delw1, nHiddenNodes,nInputNodes+1); MatrixAllocate(w1, nHiddenNodes,nInputNodes+1); MatrixAllocate(target,nPatterns, nOutputNodes); // VectorAllocate(PatternID,nPatterns); //初始化
显示全部
相似文档