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);
}
Exemple #2
0
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");
}