📄 online.cpp
字号:
#include "math.h"
#include "iostream.h"
#define IN 2//输入层神经元数目
#define HN 5//隐层神经元数目
#define ON 1 //输出层神经元数目
double X[HN]; //隐层的输入
double Y; //输出层的输入
double H[HN]; //隐层的输出
double O; //输出层的输出
double P[IN]; //单个样本输入数据
void main()
{
double W[5][2]={{-0.543685,0.353407},{0.128885,0.950304},{-0.0207018,-0.0877509},{0.349066,-0.0438003},{0.202412,0.290936}};
double V[5]={1.99488,1.29671,0.0245998,1.39703,1.90463};
double YU_HN[5]={-1.11702,-0.47621,0.817631,-0.325209,-1.27885};
double YU_ON=-1.94182;
double P[IN]={0.5000,0.3333};
double sigma;
/*int i,j,k;
for (j=0;j<5;j++)
{
sigma=0.0;
for (i=0;i<2;i++)
sigma+=W[j][i]*P[i];//求隐层内积
X[j]=sigma-YU_HN[j];//求隐层净输入
H[j]=1.0/(1.0+exp(-X[j]));//求隐层输出 siglon算法
}
sigma=0.0;
for ( k=0;k<HN;k++)
sigma+=V[k]*H[k];//求输出层内积
Y=sigma-YU_ON; //求输出层净输入
O=1.0/(1.0+exp(-Y));//求输出层输出
cout<<O;
}*/
/////////////////////////////////
//隐层各单元输入、输出值子程序///
/////////////////////////////////
int i,j;
for (j=0;j<HN;j++){
sigma=0.0;
for (i=0;i<IN;i++)
{sigma+=W[j][i]*P[i];}//求隐层内积
X[j]=sigma-YU_HN[j];//求隐层净输入,为什么减隐层的阀值
H[j]=1.0/(1.0+exp(-X[j]));//求隐层输出 siglon算法
}
///////////////////////////////////
//输出层各单元输入、输出值子程序///
///////////////////////////////////
sigma=0.0;
for ( j=0;j<HN;j++){
sigma+=V[j]*H[j];//求输出层内积
}
double Y=sigma-YU_ON; //求输出层净输入
double O=1.0/(1.0+exp(-Y));//求输出层输出
cout<<O;
}//子程序O_I_O()结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -