Example #1
0
        //create Proximal Synapses to Columns in InputPlane
        //receptive area is InputPlane
        private void connectProximal(Layer ip)
        {
            if (ip != null)             //may be null during testing
            {
                //calculate radius from INPUT Layer/Plane diagonal dimension (to allow 1-dimensional layers)
                double radius = ip.CalcRadius(ZoneSizePercProximal);

                for (int x = 0; x < NumColumnsX; x++)
                {
                    for (int y = 0; y < NumColumnsY; y++)
                    {
                        Column col = Columns[x][y];
                        col.CreateProximalSynapses(this, ip, radius, ZoneCoveragePercProximal);
                    }
                }
            }
            else                //imput layer empty, remove all Synapses
            {
                for (int x = 0; x < NumColumnsX; x++)
                {
                    for (int y = 0; y < NumColumnsY; y++)
                    {
                        Column col = Columns[x][y];
                        col.RemoveAllProximalSynapses();
                    }
                }
            }
        }
Example #2
0
        //calculate number of Basal connections to create
        public int CalcNumBasalSynapsesToCreate(Layer lr, double zoneSizePerc, double zoneCoveragePerc)
        {
            double        radius           = lr.CalcRadius(zoneSizePerc);
            List <Column> potentialColumns = lr.GetColumnsFromCentre(this.X, this.Y, radius, false);
            int           numToConnect     = (int)(potentialColumns.Count * zoneCoveragePerc);

            return(numToConnect);
        }