Ejemplo n.º 1
0
        public NetworkTestingViewModel(NeuralNetwork network, PatternContainer patternContainer)
        {
            _network                = network;
            _patternContainer       = patternContainer;
            PredictCommand          = new AsyncRelayCommand(async() => await Task.Run(() => Predict()));
            AddToTrainingSetCommand = new RelayCommand(() =>
            {
                var dialog = new Views.SavePatternAsDialog
                {
                    ResponseText = Predictions?.FirstOrDefault(p => p.IsHighest)?.Name ?? string.Empty
                };
                if (dialog.ShowDialog() != true)
                {
                    return;
                }

                var pattern = new Pattern
                {
                    Name    = dialog.ResponseText,
                    Rows    = 15,
                    Columns = 10
                };

                // 0 - black, 1 - white
                pattern.FillUsing(Pixels.Cast <double>().Select(p => p < 0.5).ToArray());
                _patternContainer.Add(pattern);
            });
        }
Ejemplo n.º 2
0
        public PatternEditorViewModel(PatternContainer patternContainer)
        {
            _patternContainer = patternContainer;

            var viewSource = new CollectionViewSource
            {
                Source           = _patternContainer.Patterns,
                SortDescriptions =
                {
                    new SortDescription(nameof(Pattern.Name), ListSortDirection.Ascending)
                },
                IsLiveSortingRequested = true
            };

            Patterns = (CollectionView)viewSource.View;

            ((INotifyCollectionChanged)_patternContainer.Patterns).CollectionChanged += (sender, args) =>
            {
                PatternGroups = _patternContainer.Patterns
                                .GroupBy(x => x.Name)
                                .OrderBy(x => x.Key)
                                .Select(x => new PatternGroup {
                    Name = x.Key, NumberOfSamples = x.Count()
                })
                                .ToArray();
            };

            AddToTrainingSetCommand = new RelayCommand(AddToTrainingSet);
            NewPatternCommand       = new RelayCommand(NewPattern);
            SaveToXmlCommand        = new RelayCommand(SaveToXml);
            LoadFromXmlCommand      = new RelayCommand(LoadFromXml);
        }
Ejemplo n.º 3
0
        public NetworkTrainingViewModel(NeuralNetwork network, PatternContainer patternContainer, Dispatcher currentDispatcher)
        {
            _network          = network;
            _patternContainer = patternContainer;
            _dispatcher       = currentDispatcher;

            StartTrainingCommand  = new AsyncRelayCommand(StartTraining);
            CancelTrainingCommand = new RelayCommand(CancelTraining);
        }
Ejemplo n.º 4
0
        private IPatternContainer SetupPatternContainer()
        {
            var container = new PatternContainer();

            RegisterFieldPatternGenerators(container);
            RegisterPropertyPatternGenerators(container);
            RegisterMethodPatternGenerators(container);
            RegisterClassPatternGenerators(container);
            RegisterInterfacePatternGenerators(container);
            RegisterFilePatternGenerators(container);

            return(container);
        }