資源描述:
《神經(jīng)網(wǎng)絡(luò)的BP算法C語言實現(xiàn).docx》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、//BP算法簡單實現(xiàn),C語言代碼可運行,詳細注釋//代碼存放文件本文用的絕對路徑,會報錯,請自行更改路徑或者改成相對路徑///////////////////////////////////////////#include#include#include#include#defineinput2//輸入層#definehidden10//隱層#defineoutput1//輸出層#definesampleNum90//樣本容量#definetest1
2、0//測試集容量#definenr0.1//學習效率#defineEPS0.00001floatx[sampleNum][input],d[sampleNum][output],whi[input][hidden],wij[hidden][output],thi[hidden],thj[output];//x是輸入的值,d是輸出的值,whi是權(quán)值,inth,i,j,k,ff;doubletestdata[1][2];floatxmin[input],xmax[input],dmin[output],dmax[output
3、];FILE*fp1,*fp2,*fp3,*fp4;voidinit(void);voidstartleaning(void);voidtestsample(void);voidreadw(void);voidreadt(void);voidwritew(void);floatsigmoid(floata);doubleranu(void);voidinit(void){intmin,max;if(fp1==0){system("cls");printf("Cannotfindthelearningsamplefile!
4、");exit(0);}for(k=0;kd[max][j])max=k
5、;}dmin[j]=d[min][j];dmax[j]=d[max][j];for(k=0;k6、,u1=0,u2=0,u3=0;floatv0,v1,v2,v3;for(i=0;i7、層到輸出的bias//學習開始printf("tPleaseenterthelearningtimes:");scanf("%ld",&nt);for(n=0;n8、[i]);//yi為函數(shù)變換后的輸出層//隱層輸出}for(j=0;j