Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
 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));
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
 public NeuronNet(ObjectPool pool, NeuronNetSettings settings)
     : base(pool, settings)
 {
     mPool        = new ObjectPool(settings.mLayerSettings.mFactory, settings.mNumLayersMax);
     mOutputLayer = new NeuronLayer(mPool, settings.mLayerSettings);
 }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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;
        }
Ejemplo n.º 10
0
 public NeuronNet(ObjectPool pool, NeuronNetSettings settings)
     : base(pool, settings)
 {
     mPool = new ObjectPool(settings.mLayerSettings.mFactory, settings.mNumLayersMax);
     mOutputLayer = new NeuronLayer(mPool, settings.mLayerSettings);
 }