public static void Run() { var training = EncogUtility.LoadEGB2Memory(Config.TrainingFile); var pattern = new FeedForwardPattern { InputNeurons = training.InputSize, OutputNeurons = training.IdealSize, ActivationFunction = new ActivationTANH() }; var prune = new PruneIncremental(training, pattern, 100, 1, 10, new ConsoleStatusReportable()); prune.AddHiddenLayer(5, 50); prune.AddHiddenLayer(0, 50); Console.WriteLine("Starting prune process"); prune.Process(); EncogDirectoryPersistence.SaveObject(Config.NetworkFile, prune.BestNetwork); EncogUtility.SaveEGB(Config.TrainingFile, prune.Training); }
/// <summary> /// Create a simple feedforward neural network. /// </summary> /// <param name="input">The number of input neurons.</param> /// <param name="hidden1">The number of hidden layer 1 neurons.</param> /// <param name="hidden2">The number of hidden layer 2 neurons.</param> /// <param name="output">The number of output neurons.</param> /// <param name="tanh">True to use hyperbolic tangent activation function, false to /// use the sigmoid activation function.</param> /// <returns>The neural network.</returns> public static BasicNetwork SimpleFeedForward(int input, int hidden1, int hidden2, int output, bool tanh) { var pattern = new FeedForwardPattern { InputNeurons = input, OutputNeurons = output }; if (tanh) { pattern.ActivationFunction = new ActivationTANH(); } else { pattern.ActivationFunction = new ActivationSigmoid(); } if (hidden1 > 0) { pattern.AddHiddenLayer(hidden1); } if (hidden2 > 0) { pattern.AddHiddenLayer(hidden2); } var network = (BasicNetwork)pattern.Generate(); network.Reset(); return(network); }
public static void Incremental(FileInfo dataDir) { FileInfo file = FileUtil.CombinePath(dataDir, Config.TRAINING_FILE); if (!file.Exists) { Console.WriteLine(@"Can't read file: " + file); return; } IMLDataSet training = EncogUtility.LoadEGB2Memory(file); var pattern = new FeedForwardPattern { InputNeurons = training.InputSize, OutputNeurons = training.IdealSize, ActivationFunction = new ActivationTANH() }; var prune = new PruneIncremental(training, pattern, 100, 1, 10, new ConsoleStatusReportable()); prune.AddHiddenLayer(5, 50); prune.AddHiddenLayer(0, 50); prune.Process(); EncogDirectoryPersistence.SaveObject(file, prune.BestNetwork); }
public void Prune() { INeuralDataSet trainingSet = new BasicNeuralDataSet(networkInput, networkIdealOutput); FeedForwardPattern pattern = new FeedForwardPattern(); pattern.InputNeurons = INPUT_NEURONS; pattern.OutputNeurons = OUTPUT_NEURONS; if (ACTIVIATION_FUNCTION == 1) pattern.ActivationFunction = new ActivationSigmoid(); else if (ACTIVIATION_FUNCTION == 2) pattern.ActivationFunction = new ActivationTANH(); else throw new System.Exception("Only 2 activation functions have been impletemented."); PruneIncremental prune = new PruneIncremental(trainingSet, pattern, 200, new ConsoleStatusReportable()); prune.AddHiddenLayer(10, 40); prune.AddHiddenLayer(0, 30); prune.Process(); network = prune.BestNetwork; Console.WriteLine("Prune process complete."); }
public static void Run() { Log("Loading training data"); var encog = new EncogPersistedCollection("market-training.dat", FileMode.Open); var trainingSet = (BasicMLDataSet)encog.Find("market-training"); Log("Figuring out best system"); var pattern = new FeedForwardPattern { InputNeurons = trainingSet.InputSize, OutputNeurons = trainingSet.IdealSize, ActivationFunction = new ActivationTANH() }; var prune = new PruneIncremental(trainingSet, pattern, 100, new ConsoleStatusReportable()); prune.AddHiddenLayer(1, 50); prune.AddHiddenLayer(0, 50); prune.Process(); Log("Done!!!!"); }
private static IMLMethod CreateFeedforwardNetwork(int input) { // construct a feedforward type network var pattern = new FeedForwardPattern(); pattern.ActivationFunction = new ActivationSigmoid(); pattern.InputNeurons = input; pattern.AddHiddenLayer(5); pattern.OutputNeurons = 1; return(pattern.Generate()); }
public static BasicNetwork CreateNetwork() { var pattern = new FeedForwardPattern { InputNeurons = 3 }; pattern.AddHiddenLayer(50); pattern.OutputNeurons = 1; pattern.ActivationFunction = new ActivationTANH(); var network = (BasicNetwork)pattern.Generate(); network.Reset(); return(network); }
/// <summary> /// Creates the feedforward network. /// </summary> /// <param name="inputsize">The inputsize.</param> /// <param name="outputsize">The outputsize.</param> /// <param name="hiddenlayers">The hiddenlayers.</param> /// <param name="hidden2layers">The hidden2layers.</param> /// <returns></returns> public static BasicNetwork CreateFeedforwardNetwork(int inputsize, int outputsize, int hiddenlayers, int hidden2layers) { // construct an Elman type network FeedForwardPattern pattern = new FeedForwardPattern(); pattern.ActivationFunction = new ActivationTANH(); pattern.InputNeurons = inputsize; pattern.AddHiddenLayer(hiddenlayers); pattern.AddHiddenLayer(hidden2layers); pattern.OutputNeurons = outputsize; var network = pattern.Generate(); return((BasicNetwork)network); }
private BasicNetwork CreateNetwork() { var pattern = new FeedForwardPattern { InputNeurons = 1 }; for (int i = 0; i < simSettings.HiddenLayers; i++) { pattern.AddHiddenLayer(simSettings.HiddenLayerNeurons); } pattern.OutputNeurons = 1; pattern.ActivationFunction = new ActivationTANH(); var network = (BasicNetwork)pattern.Generate(); network.Reset(); return(network); }
public static BasicNetwork CreateNetwork(int start, int end, params int[] layers) { var pattern = new FeedForwardPattern { InputNeurons = start }; foreach (int i in layers) { pattern.AddHiddenLayer(i); } pattern.OutputNeurons = end; pattern.ActivationFunction = new ActivationTANH(); var network = (BasicNetwork)pattern.Generate(); network.Reset(); return(network); }
/// <see cref="INetwork.BuildFeedforwardNetwork"/> public INetwork BuildFeedforwardNetwork() { if (TrainedNetworkFile.Exists) { return(this); } var pattern = new FeedForwardPattern { ActivationFunction = new ActivationSigmoid(), InputNeurons = InputCount, OutputNeurons = OutputCount }; var network = (BasicNetwork)pattern.Generate(); EncogDirectoryPersistence.SaveObject(TrainedNetworkFile, network); TrainedNetworkFile = new FileInfo(TrainedNetworkFile.FullName); return(this); }
private void Step4_Pruning() { txtStatus.Text = "Prune the network"; var trainingSet = EncogUtility.LoadCSV2Memory(Config.NormalizedTrainingFile.ToString(), 22, 1, true, CSVFormat.English, false); var pattern = new FeedForwardPattern() { InputNeurons = 22, OutputNeurons = 1, ActivationFunction = new ActivationTANH() }; prune = new PruneIncremental(trainingSet, pattern, 100, 1, 10, this); prune.AddHiddenLayer(1, 10); prune.AddHiddenLayer(0, 10); Logs.Clear(); pruneWorker.RunWorkerAsync(); }
public EncogMaze(MazeInfo maze, int hiddenLayers = 1, int?hiddenLayerNeurons = null) { this.maze = maze; filePath = Path.Combine(Environment.CurrentDirectory, maze.Name + "." + ENCOG_FILE_EXTENSION); if (!LoadNetwork()) { // create new network var pattern = new FeedForwardPattern() { InputNeurons = INPUT_RNEURONS, OutputNeurons = OUTPUT_RNEURONS }; for (int i = 0; i < hiddenLayers; i++) { pattern.AddHiddenLayer(hiddenLayerNeurons == null ? maze.Width * maze.Height : hiddenLayerNeurons.Value); } pattern.ActivationFunction = new ActivationTANH(); network = (BasicNetwork)pattern.Generate(); network.Reset(); } }