private BAMNetwork Create() { var network = new BAMNetwork(6, 3); network.WeightsF1ToF2[1, 1] = 2.0; network.WeightsF2ToF1[2, 2] = 3.0; return(network); }
private void ValidateBAM(BAMNetwork network) { Assert.AreEqual(6, network.F1Count); Assert.AreEqual(3, network.F2Count); Assert.AreEqual(18, network.WeightsF1ToF2.Size); Assert.AreEqual(18, network.WeightsF2ToF1.Size); Assert.AreEqual(2.0, network.WeightsF1ToF2[1, 1]); Assert.AreEqual(3.0, network.WeightsF2ToF1[2, 2]); }
public void TestPersistSerial() { BAMNetwork network = Create(); SerializeObject.Save(SERIAL_FILENAME.ToString(), network); var network2 = (BAMNetwork)SerializeObject.Load(SERIAL_FILENAME.ToString()); ValidateBAM(network2); }
public void TestPersistEG() { BAMNetwork network = Create(); EncogDirectoryPersistence.SaveObject(EG_FILENAME, network); var network2 = (BAMNetwork)EncogDirectoryPersistence.LoadObject(EG_FILENAME); ValidateBAM(network2); }
public void RunBAM(BAMNetwork network, NeuralDataMapping data) { var line = new StringBuilder(); line.Append(MappingToString(data)); network.Compute(data); line.Append(" | "); line.Append(MappingToString(data)); app.WriteLine(line.ToString()); }
/// <returns>The generated network.</returns> public IMLMethod Generate() { var bam = new BAMNetwork(_f1Neurons, _f2Neurons); return bam; }
static void Main(string[] args) { // if( args.Length != 2 ) // { // Console.WriteLine( "Invalid argument list." ); // return; // } const int patterns = 5; const int inputs = 35; const int outputs = 5; GenerateOutputValues(); GenerateInputPatterns(); var data = CreatePatterns(inputs, outputs); var upperdata = CreateUpperPatterns(inputs, outputs); var builder = new StringBuilder(); // Print Training Set Console.WriteLine("Training Set"); for (var i = 0; i < patterns; i++) { Console.WriteLine("Index: {0}", i); builder.Remove(0, builder.Length); for (var j = 0; j < data[i].getInSize(); j++) { if (builder.Length > 0) { builder.Append(","); } builder.Append(data[i].getIn(j)); } Console.WriteLine(" Inputs: {0}", builder); builder.Remove(0, builder.Length); for (var j = 0; j < data[i].getOutSize(); j++) { if (builder.Length > 0) { builder.Append(","); } builder.Append(data[i].getOut(j)); } Console.WriteLine(" Outputs: {0}", builder); } for (var i = 0; i < patterns; i++) { Console.WriteLine("Index: {0}", i + 5); builder.Remove(0, builder.Length); for (var j = 0; j < upperdata[i].getInSize(); j++) { if (builder.Length > 0) { builder.Append(","); } builder.Append(upperdata[i].getIn(j)); } Console.WriteLine(" Inputs: {0}", builder); builder.Remove(0, builder.Length); for (int j = 0; j < upperdata[i].getOutSize(); j++) { if (builder.Length > 0) { builder.Append(","); } builder.Append(upperdata[i].getOut(j)); } Console.WriteLine(" Outputs: {0}", builder); } // Create BAM var bam = new BAMNetwork(inputs, outputs); var upperbam = new BAMNetwork(inputs, outputs); // always have to create the network first, or nothing works bam.CreateNetwork(); upperbam.CreateNetwork(); // Train the BAM for (var i = 0; i < patterns; i++) // Add All Patterns to the BAM { bam.SetNodeValue(data[i]); // Load Input Node Values bam.Learn(); } for (var i = 0; i < patterns; i++) { upperbam.SetNodeValue(upperdata[i]); upperbam.Learn(); } // Run the BAM for (var i = 0; i < patterns; i++) { bam.SetNodeValue(data[i]); // Load Input Node Values bam.Run(); Console.WriteLine("Pattern: {0}", i); for (int j = 0; j < outputs; j++) // Print results { Console.WriteLine(" BAM output: {0} Desired output: {1}", bam.GetNodeValue(j).ToString("F3"), data[i].getOut(j).ToString("F3")); } } // for i // run the second bam for (var i = 0; i < patterns; i++) { upperbam.SetNodeValue(upperdata[i]); // Load Input Node Values upperbam.Run(); Console.WriteLine("Pattern: {0}", i + 5); for (var j = 0; j < outputs; j++) // Print results { Console.WriteLine(" BAM output: {0} Desired output: {1}", upperbam.GetNodeValue(j).ToString("F3"), upperdata[i].getOut(j).ToString("F3")); } } // for i // CreateInputPatterns(); // CreateOutputValues(); // // // Create BAM // BAMNetwork bam = new BAMNetwork(35, 10); // // // Train the BAM // for (int i=0; i<10; i++) // Add All Patterns to the BAM // { // StringPattern pattern = new StringPattern( PatternStrings[i], OutputValues[i] ); // bam.setNodeValue(pattern); // Load Input Node Values // bam.Learn(0); // } // // // Run the BAM // for (int i=0; i<10; i++) // { // StringPattern pattern = new StringPattern( PatternStrings[i], OutputValues[i] ); // bam.setNodeValue(pattern); // Load Input Node Values // // bam.Run(0); // // Console.WriteLine( "Pattern: {0}", i ); // for (int j=0; j<10; j++) // Print results // { // Console.WriteLine( "BAM Output: {0} Desired Output: {1}", bam.getNodeValue(j).ToString("F3"), OutputValues[i][j].ToString("F3") ); // } // } // for i Console.Read(); }