void CreateTeacher() { Accord.Neuro.Networks.DeepBeliefNetwork net = (Accord.Neuro.Networks.DeepBeliefNetwork)_Network; _Teacher = new Accord.Neuro.Learning.ResilientBackpropagationLearning(net); }
static void NeuralNetworkAccompanimentTest() { // initialize input and output values double[][] input = new double[4][] { new double[] {0, 0}, new double[] {0, 1}, new double[] {1, 0}, new double[] {1, 1} }; double[][] output = new double[4][] { new double[] {0}, new double[] {1}, new double[] {1}, new double[] {0} }; SigmoidFunction sig = new SigmoidFunction(); Accord.Neuro.Networks.RestrictedBoltzmannMachine boltz = new Accord.Neuro.Networks.RestrictedBoltzmannMachine(200, 200); // create neural network ActivationNetwork network = new ActivationNetwork( new SigmoidFunction(2), 200, 20, 200); //BackPropagationLearning teacher = new BackPropagationLearning(network); //LevenbergMarquardtLearning teacher = new LevenbergMarquardtLearning(network); Accord.Neuro.Learning.ParallelResilientBackpropagationLearning teacher = new ParallelResilientBackpropagationLearning(network); Accord.Neuro.Networks.DeepBeliefNetwork dpn = new Accord.Neuro.Networks.DeepBeliefNetwork(200, 20); // teacher.IncreaseFactor = 1.01; Composition c = Composition.LoadFromMIDI("test/other/ff7tifa.mid"); MusicPlayer player = new MusicPlayer(); //player.Play(c.Tracks[0]); List<double[]> inputs = new List<double[]>(); List<double[]> outputs = new List<double[]>(); inputs.Add(GetDoublesFromNotes((c.Tracks[0].GetMainSequence() as MelodySequence).ToArray())); outputs.Add(GetDoublesFromNotes((c.Tracks[1].GetMainSequence() as MelodySequence).ToArray())); // inputs.Add(GetDoublesFromNotes((c.Tracks[1].GetMainSequence() as MelodySequence).ToArray())); // outputs.Add(GetDoublesFromNotes((c.Tracks[2].GetMainSequence() as MelodySequence).ToArray())); // inputs.Add(GetDoublesFromNotes((c.Tracks[0].GetMainSequence() as MelodySequence).ToArray())); // outputs.Add(GetDoublesFromNotes((c.Tracks[3].GetMainSequence() as MelodySequence).ToArray())); int its = 0; while (its++ < 10000) { double error = teacher.RunEpoch(inputs.ToArray(), outputs.ToArray()); Console.WriteLine("{0}: Error - {1}", its, error); } var input_melody = (c.Tracks[0].GetMainSequence() as MelodySequence); var new_notes = network.Compute(GetDoublesFromNotes(input_melody.ToArray())); var new_mel = GetMelodyFromDoubles(new_notes); player.Play(new_mel); Console.ReadLine(); }
void CreateNetwork(Accord.Neuro.ActivationFunctions.IStochasticFunction function, int inputneurons, int[] hiddenlayers) { _Network = new Accord.Neuro.Networks.DeepBeliefNetwork(function, inputneurons, hiddenlayers); _InputNeurons = inputneurons; }