public void IsTrainableByBackPropagation()
        {
            var net                 = MnistLearnerSigmoidNetBuilder.Build(15);
            var trainingData        = new MnistFilesReader(mnistRealDataDirectory).TrainingData.Take(200).Select(p => new LearningNeuralNetworks.V1.Pair <Image, byte>(p.Data, p.Label)).ToArray();
            var scoreBeforeTraining = HitsScoredOnTestData(net, trainingData);

            //
            new BackPropagationWithGradientDescent().ApplyToBatches(net, trainingData, 10, 3, 100);
            //
            var scoreAfterTraining = HitsScoredOnTestData(net, trainingData);

            Console.WriteLine("Scores before/after training: {0} / {1}", scoreBeforeTraining, scoreAfterTraining);
            scoreAfterTraining.ShouldBeGreaterThan(scoreBeforeTraining);
        }
 void SetUpLoadedReader()
 {
     reader = (reader != null && reader.IsLoaded)
                 ? reader
                 : new MnistFilesReader(mnistRealDataDirectory, 2).EnsureLoaded();
 }