91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 22KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-13
  • 語言: C/C++
  • 標簽: bp??

資源簡介

Vc++的程序,簡單的bp算法實現數據分類。

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
using?namespace?std;

#define?NH????????2
#define?STEP??????1
double?**ppData;??????????//data
double??*pY;??????????????//std?result
double??*pOut;????????????//ouput
double?**ppIn;????????????//
double?**WeightIn;????????//hidden?note?weight
double??*WeightOut;???????//output?note?weight
double?**DWin;????????????//last?time?hidden?note?weight
double??*DWout;???????????//last?time?output?note?weight
double??Con_b[NH+1];
int?DataNum;???????????????//?data?number
int?Dimension;?????????????//?dimension
double?Threshhold;?????????//?sheld?

double?Sigmoid(double?x)
{
return?1.0/(1+exp(-x));
}
double?DotProduct(double*?vec1double?*vec2int?dim)
{
double?result=0.0;
for(int?i=0;i {
result+=vec1[i]*vec2[i];
}
return?result;
}
//compute?the?output?each?step
void?ComputeOutput()
{
for(int?i=0;i {
for(int?j=0;j {
double?dp=DotProduct(ppData[i]WeightIn[j]Dimension);
dp+=Con_b[j];
ppIn[i][j]=Sigmoid(dp);
}
}
for(int?i=0;i {
double?dp=DotProduct(ppIn[i]WeightOutNH);
dp+=Con_b[NH];
pOut[i]=Sigmoid(dp);
}
}
//update?weights?matrix
void?UpdateW()
{
double???DegreeIn[NH];
double???DegreeOut=0;
for(int?i=0;i {
for(int?j=0;j {
DWin[i][j]=0;
}
DWout[i]=0;
}
for(int?i=0;i {
DegreeOut=pOut[i]*(1-pOut[i])*(pY[i]-pOut[i]);
for(int?h=0;h {
DegreeIn[h]=ppIn[i][h]*(1-ppIn[i][h])*WeightOut[h]*DegreeOut;
Con_b[h]+=STEP*DegreeIn[h];
}
Con_b[NH]+=STEP*DegreeOut;
for(int?j=0;j {
DWout[j]+=STEP*DegreeOut*ppIn[i][j];
//cout< }
for(int?x=0;x {
for(int?y=0;y {
DWin[x][y]+=STEP*DegreeIn[x]*ppData[i][y];
}
}
}
for(int?k=0;k {
for(int?j=0;j {
WeightIn[k][j]+=DWin[k][j];
//cout< }
WeightOut[k]+=DWout[k];
//cout< }
//cout<}
double?GetError()
{
double?e=0.0;
for(int?i=0;i {
e+=(pY[i]-pOut[i])*(pY[i]-pOut[i])/2;
}
return?e;
}
void?Train()
{
double?error=100000;
int?t=0;
do{
UpdateW();
ComputeOutput();
error=GetError();
//
t++;
}while(error>Threshhold&&t<2000);
????cout< for(int?i?=?0;i? {
???cout< }
cout<}
double?*GetResult(double?thresh)
{
for(int?i=0;i {
for(int?j=0;j {
double?dp=DotProduct(ppData[i]WeightIn[j]Dimension);
dp+=Con_b[j];
ppIn[i][j]=Sigmoid(dp);
}
}
for(int?i=0;i {
double?dp=DotProduct(ppIn[i]WeightOutNH);
dp+=Con_b[NH];
pY[i]=Sigmoid(dp);
if(pY[i]>thresh)
{
pY[i]=1;
}
else?pY[i]=0;
}
return?pY;
}
bool?Init(double?**datadouble?*yint?numint?dimdo

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????6369??2009-11-28?16:05??Backpropagation\backpropagation.cpp

?????文件??????25639??2009-11-28?16:04??Backpropagation\readme.docx

?????目錄??????????0??2009-11-28?16:05??Backpropagation

-----------?---------??----------?-----??----

????????????????32008????????????????????3


評論

共有 條評論