public override void InsertIn(NeuralBuilder builder)
 {
     builder.FCLayer
     (
         Size,
         Activation
     );
 }
 public override void InsertIn(NeuralBuilder builder)
 {
     builder.PoolLayer
     (
         Filter,
         Stride,
         Type
     );
 }
 public override void InsertIn(NeuralBuilder builder)
 {
     builder.ConvLayer
     (
         Size,
         Filter,
         Stride,
         Padding,
         Activation
     );
 }
 public override void InsertIn(NeuralBuilder builder)
 {
     if (Reshape)
     {
         builder.AdaptLayer
         (
             Shape,
             Normalize,
             Activation
         );
     }
     else
     {
         builder.AdaptLayer
         (
             Normalize,
             Activation
         );
     }
 }
Beispiel #5
0
        private static void Main(string[] args)
        {
            var network = NeuralBuilder.BuildFullConnected(Math.Tanh, 1, 20, 20, 1);



            var mutationDic = new Dictionary <IMutation, double>
            {
                { new WeigthMutate(), 1 },
                { new ConnectSynapse(), 0.5 },
                { new RemoveSynapse(), 0.5 },
                // {new ConnectNeuron(Math.Tanh), 0.4},
                { new MultiMutate(new[] { new WeigthMutate(), new WeigthMutate() }), 0.5 },
                { new MultiMutate(new[] { new ConnectSynapse(), new ConnectSynapse() }), 0.2 }
            };

            var specie = new Species(FitFunc, network, mutationDic);

            specie.OnImprovement += OnImprovement;
            specie.Sensitivity    = 0.0001;

            lastFit   = FitFunc(network);
            startTime = DateTime.Now;

            while (true)
            {
                specie.Iteration();
                specie.Sensitivity *= 0.9999;
                if (network.LoopDetected())
                {
                    Console.WriteLine("LOOP!");
                }
            }
            network.MetricsRecitate();
            NeuralBuilder.BuildDOTGraph(network, "outgraph.dot");
        }
 public void Dispose()
 {
     builder?.Dispose();
     builder = null;
     Clear();
 }
 public abstract void InsertIn(NeuralBuilder builder);