void TrainNet(NET* Net, INT Epochs) { INT Year, n; REAL Output[M]; for (n=0; n<Epochs*NUM_TAB; n++) { Year = RandomEqualINT(0,NUM_TAB-1); SimulateNet(Net, D12[Year], Output, xy[Year], TRUE); } }
void TrainNet(NET* Net, INT Epochs) { INT Year, n; REAL Output[M]; for (n=0; n<Epochs*TRAIN_YEARS; n++) { Year = RandomEqualINT(TRAIN_LWB, TRAIN_UPB); SimulateNet(Net, &(Sunspots[Year-N]), Output, &(Sunspots[Year]), TRUE); } }
void main() { NET Net; REAL Error; BOOL Stop; INT n,m; InitializeRandoms(); GenerateNetwork(&Net); RandomWeights(&Net); InitializeApplication(&Net); do { Error = 0; Stop = TRUE; for (n=0; n<NUM_DATA; n++) { SimulateNet(&Net, Input[n], Output[n], FALSE, FALSE); Error = MAX(Error, Net.Error); Stop = Stop AND (Net.Error < Net.Epsilon); } Error = MAX(Error, Net.Epsilon); printf("Training %0.0f%% completed ...\n", (Net.Epsilon / Error) * 100); if (NOT Stop) { for (m=0; m<10*NUM_DATA; m++) { n = RandomEqualINT(0, NUM_DATA-1); SimulateNet(&Net, Input[n], Output[n], TRUE, FALSE); } } } while (NOT Stop); for (n=0; n<NUM_DATA; n++) { SimulateNet(&Net, Input[n], Output[n], FALSE, TRUE); } FinalizeApplication(&Net); }