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); }); }
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); }
public NetworkTrainingViewModel(NeuralNetwork network, PatternContainer patternContainer, Dispatcher currentDispatcher) { _network = network; _patternContainer = patternContainer; _dispatcher = currentDispatcher; StartTrainingCommand = new AsyncRelayCommand(StartTraining); CancelTrainingCommand = new RelayCommand(CancelTraining); }
private IPatternContainer SetupPatternContainer() { var container = new PatternContainer(); RegisterFieldPatternGenerators(container); RegisterPropertyPatternGenerators(container); RegisterMethodPatternGenerators(container); RegisterClassPatternGenerators(container); RegisterInterfacePatternGenerators(container); RegisterFilePatternGenerators(container); return(container); }