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 ); } }
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);