void trainNetwork(int sampleCnt) { int i, c = 0; do { e = 0; for (i = 0; i < sampleCnt; ++i) { computO(i); //for (j = 0; j < OUTPUT_CNT; ++j) e += fabs(networkOutput[realNumIndex[i]] - sampleOutput[i*OUTPUT_CNT + realNumIndex[i]]); backUpdate(i); } //printf("%d %lf\n", c, e / sampleCnt); c++; } while (c<TRAIN_CNT && e / sampleCnt>0.01); //printArrDbe(networkOutput, FEATURES_CNT); }
void trainNetwork(){ //训练神经网络 printf("开始训练神经网络\n"); int i,c=0,j; int check; do{ e=0; for (i = 0; i < Data; ++i){ comput(i); check=1; for (j = 0; j < Out; ++j) if (OutputData[j]!=d_out[i][j]) check=0; if (check!=1) e++; backUpdate(i); // printf("%d %d %d\n",OutputData[0],OutputData[1],OutputData[2]); // printf("%d %d %d\n\n\n",d_out[i][0],d_out[i][1],d_out[i][2]); } c++; printf("第%d次训练网络,误差精度为:%f\n",c,1.0*e/Data); }while(c<TrainC && 1.0*e/Data>0.001); printf("训练神经网络完毕,读取测试样本\n"); }