/// <summary> /// Perform one iteration. /// </summary> /// public override void Iteration() { double error = 0; for (int valFold = 0; valFold < Folded.NumFolds; valFold++) { // restore the correct network _networks[valFold].CopyToNetwork(_flatNetwork); // train with non-validation folds for (int curFold = 0; curFold < Folded.NumFolds; curFold++) { if (curFold != valFold) { Folded.CurrentFold = curFold; _train.Iteration(); } } // evaluate with the validation fold Folded.CurrentFold = valFold; double e = _flatNetwork.CalculateError(Folded); //System.out.println("Fold " + valFold + ", " + e); error += e; _networks[valFold].CopyFromNetwork(_flatNetwork); } Error = error / Folded.NumFolds; }