/// <summary> /// The generated network. /// </summary> /// <returns></returns> public BasicNetwork Generate() { BasicNetwork network = new BasicNetwork(new BAMLogic()); ILayer f1Layer = new BasicLayer(new ActivationBiPolar(), false, F1Neurons); ILayer f2Layer = new BasicLayer(new ActivationBiPolar(), false, F2Neurons); ISynapse synapseInputToOutput = new WeightedSynapse(f1Layer, f2Layer); ISynapse synapseOutputToInput = new WeightedSynapse(f2Layer, f1Layer); f1Layer.AddSynapse(synapseInputToOutput); f2Layer.AddSynapse(synapseOutputToInput); network.TagLayer(BAMPattern.TAG_F1, f1Layer); network.TagLayer(BAMPattern.TAG_F2, f2Layer); network.Structure.FinalizeStructure(); network.Structure.FinalizeStructure(); f1Layer.Y = PatternConst.START_Y; f2Layer.Y = PatternConst.START_Y; f1Layer.X = PatternConst.START_X; f2Layer.X = PatternConst.INDENT_X; return(network); }
/// <summary> /// Generate the RBF network. /// </summary> /// <returns>The neural network.</returns> public BasicNetwork Generate() { int y = PatternConst.START_Y; BasicLayer inputLayer = new BasicLayer(new ActivationLinear(), false, this.InputNeurons); inputLayer.X = PatternConst.START_X; inputLayer.Y = y; y += PatternConst.INC_Y; BasicLayer outputLayer = new BasicLayer(ActivationFunction, false, this.OutputNeurons); outputLayer.X = PatternConst.START_X; outputLayer.Y = y; NEATSynapse synapse = new NEATSynapse(inputLayer, outputLayer, this.neurons, this.NEATActivation, 0); synapse.Snapshot = this.Snapshot; inputLayer.AddSynapse(synapse); BasicNetwork network = new BasicNetwork(); network.TagLayer(BasicNetwork.TAG_INPUT, inputLayer); network.TagLayer(BasicNetwork.TAG_OUTPUT, outputLayer); network.Structure.FinalizeStructure(); return(network); }