本文整理汇总了C#中Network.TrainCurrentPattern方法的典型用法代码示例。如果您正苦于以下问题:C# Network.TrainCurrentPattern方法的具体用法?C# Network.TrainCurrentPattern怎么用?C# Network.TrainCurrentPattern使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Network
的用法示例。
在下文中一共展示了Network.TrainCurrentPattern方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RunDemo
public void RunDemo()
{
Console.WriteLine("### BASIC BOUND DEMO ###");
//Prepare you're input and training data
//to bind to the network
double[] input = new double[] {-5d,5d,-5d};
double[] training = new double[] {-1,1};
//Initialize the network manager.
//This constructor also creates the first
//network layer (Inputlayer).
Network network = new Network();
//Bind your input array (to the already
//existing input layer)
network.BindInputLayer(input);
//Add the hidden layer with 4 neurons.
network.AddLayer(4);
//Add the output layer with 2 neurons.
network.AddLayer(2);
//bind your training array to the output layer.
//Always do this AFTER creating the layers.
network.BindTraining(training);
//Connect the neurons together using synapses.
//This is the easiest way to do it; I'll discuss
//other ways in more detail in another demo.
network.AutoLinkFeedforward();
//Propagate the network using the bound input data.
//Internally, this is a two round process, to
//correctly handle feedbacks
network.CalculateFeedforward();
//Collect the network output and print it.
App.PrintArray(network.CollectOutput());
//Train the current pattern using Backpropagation (one step)!
network.TrainCurrentPattern(false,true);
//Print the output; the difference to (-1,1) should be
//smaller this time!
App.PrintArray(network.CollectOutput());
//Same one more time:
network.TrainCurrentPattern(false,true);
App.PrintArray(network.CollectOutput());
//Train another pattern:
Console.WriteLine("# new pattern:");
input[0] = 5d;
input[1] = -5d;
training[0] = 1;
//calculate ...
network.CalculateFeedforward();
App.PrintArray(network.CollectOutput());
//... and train it one time
network.TrainCurrentPattern(false,true);
App.PrintArray(network.CollectOutput());
//what about the old pattern now?
Console.WriteLine("# the old pattern again:");
input[0] = -5d;
input[1] = 5d;
training[0] = -1;
network.CalculateFeedforward();
App.PrintArray(network.CollectOutput());
Console.WriteLine("=== COMPLETE ===");
Console.WriteLine();
}
示例2: RunDemo
public void RunDemo()
{
Console.WriteLine("### BASIC UNBOUND DEMO ###");
//Initialize the network manager.
//This constructor also creates the first
//network layer (Inputlayer).
Network network = new Network();
//You need to initialize (the size of) the
//input layer in an unbound scenario
network.InitUnboundInputLayer(3);
//Add the hidden layer with 4 neurons.
network.AddLayer(4);
//Add the output layer with 2 neurons.
network.AddLayer(2);
//Connect the neurons together using synapses.
//This is the easiest way to do it; I'll discuss
//other ways in more detail in another demo.
network.AutoLinkFeedforward();
//Push new input data
network.PushUnboundInput(new bool[] {false,true,false});
//... and output training data ...
network.PushUnboundTraining(new bool[] {false,true});
//Propagate the network using the bound input data.
//Internally, this is a two round process, to
//correctly handle feedbacks
network.CalculateFeedforward();
//Collect the network output and print it.
App.PrintArray(network.CollectOutput());
//Train the current pattern using Backpropagation (one step)!
network.TrainCurrentPattern(false,true);
//Print the output; the difference to (-1,1) should be
//smaller this time!
App.PrintArray(network.CollectOutput());
//Same one more time:
network.TrainCurrentPattern(false,true);
App.PrintArray(network.CollectOutput());
//Train another pattern:
Console.WriteLine("# new pattern:");
//this time we're using doubles directly, instead of booleans.
//5/1 are the default values for input/training values.
network.PushUnboundInput(new double[] {5d,-5d,-5d});
network.PushUnboundTraining(new double[] {1,1});
//calculate ...
network.CalculateFeedforward();
App.PrintArray(network.CollectOutput());
//... and train it one time
network.TrainCurrentPattern(false,true);
App.PrintArray(network.CollectOutput());
//what about the old pattern now?
Console.WriteLine("# the old pattern again:");
network.PushUnboundInput(new double[] {-5d,5d,-5d});
network.PushUnboundTraining(new double[] {-1,1});
network.CalculateFeedforward();
App.PrintArray(network.CollectOutput());
Console.WriteLine("=== COMPLETE ===");
Console.WriteLine();
}
示例3: RunDemo
public void RunDemo()
{
Console.WriteLine("### NETWORK STRUCTURE DEMO ###");
//Initialize the network manager.
//This constructor also creates the first
//network layer (Inputlayer).
Network network = new Network();
//You need to initialize (the size of) the
//input layer in an unbound scenario
network.InitUnboundInputLayer(3);
//Add the hidden layer with 4 neurons.
network.AddLayer(4);
//Add the output layer with 2 neurons.
network.AddLayer(2);
//Instead of calling AutoLinkFeedforward()
//on this place, in this demo we'll connect
//the network together by our own!
Layer input = network.FirstLayer;
Layer hidden = input.TargetLayer;
Layer output = network.LastLayer;
//First we want to connect all neurons
//of the hidden layer to all neurons
//of the input layer (that's exactly
//what the AutoLinkFeedforward would
//do - but between all layers).
input.CrossLinkForward();
//Then we want to achieve a lateral
//feedback in the hidden layer
//(AutoLinkFeedforward does NOT do this):
hidden.CrossLinkLayer();
//Next we want to connect the first
//and the second Neuron of the hidden
//Layer to the first output neuron,
//and the third and fourth to the 2nd
//output neuron. Some of the synapses
//shall start with special weights:
hidden[0].ConnectToNeuron(output[0]);
hidden[1].ConnectToNeuron(output[0],0.5);
hidden[2].ConnectToNeuron(output[1]);
hidden[3].ConnectToNeuron(output[1],-1.5);
//That's it. Now we can work with it,
//just we did on the Basic Unbound Demo:
network.PushUnboundInput(new bool[] {false,true,false});
network.PushUnboundTraining(new bool[] {false,true});
network.CalculateFeedforward();
App.PrintArray(network.CollectOutput());
network.TrainCurrentPattern(false,true);
App.PrintArray(network.CollectOutput());
network.TrainCurrentPattern(false,true);
App.PrintArray(network.CollectOutput());
//This demo may help you e.g. building your own
//INetworkStructureFactory implementations
//for the grid pattern matching building block.
//(You may also want to check out the default
//implementation!)
Console.WriteLine("=== COMPLETE ===");
Console.WriteLine();
}