当前位置: 首页>>代码示例>>C#>>正文


C# Network.PushUnboundTraining方法代码示例

本文整理汇总了C#中Network.PushUnboundTraining方法的典型用法代码示例。如果您正苦于以下问题:C# Network.PushUnboundTraining方法的具体用法?C# Network.PushUnboundTraining怎么用?C# Network.PushUnboundTraining使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Network的用法示例。


在下文中一共展示了Network.PushUnboundTraining方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: 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();
        }
开发者ID:sagarbatchu,项目名称:rssilocalizer,代码行数:67,代码来源:BasicUnboundDemo.cs

示例2: BuildNetwork

        public void BuildNetwork()
        {
            network = new Network(node);

            if(!groupedHiddenLayer)
            {
                network.AddLayer(32); //Hidden layer with 32 neurons
                network.AddLayer(16); //Output layer with 16 neuron

                network.BindInputLayer(input); //Bind Input Data

                network.PushUnboundTraining(outFF);
                network.AutoLinkFeedforward(); //Create synapses between the layers for typical feedforward networks.
            }
            else
            {
                network.AddLayer(64); //Hidden layer with 64 neurons
                network.AddLayer(16); //Output layer with 16 neuron

                network.BindInputLayer(input); //Bind Input Data

                network.PushUnboundTraining(outFF);

                network.FirstLayer.CrossLinkForward();
                Layer hidden = network.FirstLayer.TargetLayer;
                Layer output = network.LastLayer;
                for(int i=0;i<output.Count;i++)
                {
                    hidden[i*4].ConnectToNeuron(output[i]);
                    hidden[i*4+1].ConnectToNeuron(output[i]);
                    hidden[i*4+2].ConnectToNeuron(output[i]);
                    hidden[i*4+3].ConnectToNeuron(output[i]);
                }
            }
        }
开发者ID:sagarbatchu,项目名称:rssilocalizer,代码行数:35,代码来源:Backend.cs

示例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();
        }
开发者ID:sagarbatchu,项目名称:rssilocalizer,代码行数:68,代码来源:NetworkStructureDemo.cs


注:本文中的Network.PushUnboundTraining方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。