public void TesterReseau(SauvegardeExcel s, int indice) { // On récupère les 200 dernières données pour tester. Donnees = new Donnees(MonnaieBTC.XRP, "BTC", "5m", "200"); // Les données double[] output = new double[1]; List <Double> listeInput = Donnees.Neurone.RecupererToutesDonnees(0, NbPasse); double[] input = listeInput.ToArray(); // Erreur sur le réseau. double erreur = Reseau.CalculateError(TrainingSet); Reseau.Compute(input, output); double prevision = output[0]; // Erreur sur le réseau optimal entrainement. double erreurEntrainement = this.ReseauOptimalEntrainement.CalculateError(TrainingSet); ReseauOptimalEntrainement.Compute(input, output); double previsionEntrainement = output[0]; // Erreur sur le réseau optimal validation. double erreurValidation = this.ReseauOptimalValidation.CalculateError(ValidationSet); ReseauOptimalValidation.Compute(input, output); double previsionValidation = output[0]; s.EcritureDonnees(erreur, prevision, erreurEntrainement, previsionEntrainement, erreurValidation, previsionValidation, indice); }
/// <summary> /// Entraine le réseau. /// </summary> public void EntrainementReseau() { // Entrainement du réseau. double erreurEntrainement = 0; double erreurValidation = 0; int epoch = 1; do { train.Iteration(); // Entrainement du réseau. erreurEntrainement = Reseau.CalculateError(TrainingSet); ListeErreurEntrainement.Add(erreurEntrainement); if (erreurEntrainement < ErreurOptimaleEntrainement) { ErreurOptimaleEntrainement = erreurEntrainement; ReseauOptimalEntrainement = (BasicNetwork)Reseau.Clone(); } // Validation du réseau. erreurValidation = Reseau.CalculateError(ValidationSet); ListeErreurValidation.Add(erreurValidation); if (erreurValidation < ErreurOptimaleValidation) { ErreurOptimaleValidation = erreurValidation; ReseauOptimalValidation = (BasicNetwork)Reseau.Clone(); } epoch++; } while (epoch < NbEpochMax);// && erreurEntrainement != 0 && erreurValidation != 0); train.FinishTraining(); }