private void test()
        {
            // Show accuracy
            var result = ocrModel.TestModel(1024);

            txtResult.Text = "Accuracy: " + (result.TotalAccuracy * 100.0).ToString("0.00") + "%"
                             + Environment.NewLine + string.Join(Environment.NewLine, result.Accuracy.Select(
                                                                     (a, i) => i + ": " + (a * 100.0).ToString("0.00") + "%"));

            // Create gallery
            var image = NetworkVisualizer.DrawTestGallery(ocrModel, characterSource, 8, 8);

            imgNetwork.Source = image;
        }
        private void recognize()
        {
            // Assumes currentInput is set correctly
            // Show input
            imgInput.Source = MyBitmapTools.GetImageGray8(currentInput);

            // Feed forward
            var result = ocrModel.ExecuteSingle(currentInput);

            txtResult.Text = "Recog: " + result.MostConfident + string.Join("",
                                                                            Enumerable.Range('0', 10).Select(c => Environment.NewLine +
                                                                                                             (char)c + ": " + result.GetProbability((char)c).ToString("0.0000")));

            // Visualize full network
            var image = NetworkVisualizer.DrawNetworkSingle((ocrModel as NeuralOCRModel).NeuralNetwork, currentInput);

            imgNetwork.Source = image;
        }