public int Init(int numInputsPerNeuron, int numNeurons, NeuronLayer parent, double mutationRate) { for (int iNeurom = 0; iNeurom < numNeurons; iNeurom++) { AddNeuron().Init(numInputsPerNeuron, parent.GetNeuron(iNeurom), mutationRate); } return numNeurons; }
public int Init(int numInputsPerNeuron, int numNeurons, NeuronLayer parent, double mutationRate) { for (int iNeurom = 0; iNeurom < numNeurons; iNeurom++) { AddNeuron().Init(numInputsPerNeuron, parent.GetNeuron(iNeurom), mutationRate); } return(numNeurons); }
public int Init(int numInputsPerNeuron, NeuronLayer parent, double mutationRate) { if (parent != null) { int numNeurons = parent.mNeurons.Count + NMutation(); numNeurons = Util.Clamp(numNeurons, mSettings.mNumNeuronsPerLayerMin, mSettings.mNumNeuronsPerLayerMax); return Init(numInputsPerNeuron, numNeurons, parent, mutationRate); } return Init(numInputsPerNeuron); }
public int Init(int numInputsPerNeuron, NeuronLayer parent, double mutationRate) { if (parent != null) { int numNeurons = parent.mNeurons.Count + NMutation(); numNeurons = Util.Clamp(numNeurons, mSettings.mNumNeuronsPerLayerMin, mSettings.mNumNeuronsPerLayerMax); return(Init(numInputsPerNeuron, numNeurons, parent, mutationRate)); } return(Init(numInputsPerNeuron)); }
public int Init(int numInputsPerNeuron, int numNeurons, NeuronLayer mum, NeuronLayer dad, double mutationRate) { int iSplit = Util.Random(numNeurons); for (int iNeurom = 0; iNeurom < numNeurons; iNeurom++) { if (iNeurom < iSplit) { AddNeuron().Init(numInputsPerNeuron, mum.GetNeuron(iNeurom), mutationRate); } else { AddNeuron().Init(numInputsPerNeuron, dad.GetNeuron(iNeurom), mutationRate); } } return(numNeurons); }
public int Init(int numInputsPerNeuron, NeuronLayer mum, NeuronLayer dad, double mutationRate) { if (mum == null && dad != null) { return(Init(numInputsPerNeuron, dad, mutationRate)); } if (mum != null && dad == null) { return(Init(numInputsPerNeuron, mum, mutationRate)); } if (mum == null && dad == null) { return(Init(numInputsPerNeuron)); } int numNeurons = Util.RandomRange(mum.mNeurons.Count, dad.mNeurons.Count) + NMutation(); numNeurons = Util.Clamp(numNeurons, mSettings.mNumNeuronsPerLayerMin, mSettings.mNumNeuronsPerLayerMax); return(Init(numInputsPerNeuron, numNeurons, mum, dad, mutationRate)); }
public NeuronNet(ObjectPool pool, NeuronNetSettings settings) : base(pool, settings) { mPool = new ObjectPool(settings.mLayerSettings.mFactory, settings.mNumLayersMax); mOutputLayer = new NeuronLayer(mPool, settings.mLayerSettings); }
public int Init(int numInputsPerNeuron, NeuronLayer mum, NeuronLayer dad, double mutationRate) { if (mum == null && dad != null) return Init(numInputsPerNeuron, dad, mutationRate); if (mum != null && dad == null) return Init(numInputsPerNeuron, mum, mutationRate); if (mum == null && dad == null) return Init(numInputsPerNeuron); int numNeurons = Util.RandomRange(mum.mNeurons.Count, dad.mNeurons.Count) + NMutation(); numNeurons = Util.Clamp(numNeurons, mSettings.mNumNeuronsPerLayerMin, mSettings.mNumNeuronsPerLayerMax); return Init(numInputsPerNeuron, numNeurons, mum, dad, mutationRate); }
public int Init(int numInputsPerNeuron, int numNeurons, NeuronLayer mum, NeuronLayer dad, double mutationRate) { int iSplit = Util.Random(numNeurons); for (int iNeurom = 0; iNeurom < numNeurons; iNeurom++) { if (iNeurom < iSplit) AddNeuron().Init(numInputsPerNeuron, mum.GetNeuron(iNeurom), mutationRate); else AddNeuron().Init(numInputsPerNeuron, dad.GetNeuron(iNeurom), mutationRate); } return numNeurons; }