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

  • 大小: 4KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: C/C++
  • 標簽: 神經網絡??

資源簡介

神經網絡實現異或問題,采用的是2:2:1的結構,并采用sigmoid函數

資源截圖

代碼片段和文件信息

/********************************************
**
**??神經網絡實現異或操作
** 臧瀟?清華大學
** 2012.10.18
**
****************************************************/

#include?
#include?
#include?
#include?

#define?Ni?2?//?輸入層神經元的個數
#define?Nm?2?//?隱含層神經元的個數?
#define?No?1?//?輸出層神經元的個數

#define?Enom?0.02?//?誤差下限,達到這個誤差以內即可認為訓練成功
#define?MAXSAMPLE?1000?//?樣本的最大個數
#define?BP_LEARNING (float)(0.5) //?學習系數

//?輸入層神經元只有傳遞的功能
float?HWeight[Ni+1][Nm];?//?隱含層神經元的輸入權值
float?OWeight[Nm+1][No];?//?輸出層神經元的輸出權值

float?inputValue[Ni];
float?destValue[No];

float?E;?//?每輪的誤差

//?訓練的過程
int?train(float?in[Ni]float?d[No]);
//?神經網絡初始化
void?init();
//?測試的過程
int?processTest(float?in[Ni]);
//Sigmoid函數
float?Sigmoid(float?num);


int?main()?
{
float?input[MAXSAMPLE][Ni];?//?輸入
float?dest[MAXSAMPLE][No];?//?目標輸出
float?test[Ni];?//?測試輸入
int?num;
int?ij;
long?count=0;

//?輸入相關的測試
printf(“Please?input?the?number?of?sample:“);
scanf(“%d“&num);
for(i=0;i {
for(j=0;j scanf(“%f“&input[i][j]);
for(j=0;j scanf(“%f“&dest[i][j]);
}

init();

while(1)
{
E=0;
for(i=0;i {
train(input[i]dest[i]);
}

if(E break;

if(count%20000==0)
printf(“第%d迭代的誤差為?%f?\n“countE);

count++;
}

//?訓練好的神經網絡測試
while(1)
{
printf(“Please?input?the?test?data:“);
for(i=0;i scanf(“%f“&test[i]);
processTest(test);
}

return?1;
}

//?測試的過程
int?processTest(float?in[Ni])
{
int?ij;
float?net[Nm]iin[Nm]out[No];

//?計算隱含層的神經元值
for(i=0;i {
net[i]=1*HWeight[0][i];
for(j=1;j net[i]+=HWeight[j][i]*in[j-1];
}
//?使用S函數
for(i=0;i iin[i]=Sigmoid(net[i]);

//?計算輸出層的值
for(i=0;i {
net[i]=1*OWeight[0][i];
for(j=1;j

評論

共有 條評論