Example #1
0
        //present requested training case to InputPlane
        public bool NextCase(InputPlane ip, int caseNum)
        {
            if (NumColumnsX == ip.NumColumnsX && NumColumnsY == ip.NumColumnsY && caseNum >= 0 && caseNum < NumCases)
            {
                //set current case number to requested case
                CurrCaseNum = caseNum;
                copyCaseToInputPlane(ip);
            }
            else
            {
                return(false);
            }

            return(true);
        }
Example #2
0
        public int CalcNumProximalSynapsesToCreate(Layer lr, InputPlane ip, double zoneSizePerc, double zoneCoveragePerc)
        {
            //calculate number of connections that will be created - Proximal
            double radius = ip.CalcRadius(zoneSizePerc);

            //scale between InputPlane and Layer location positions
            int scaledX, scaledY;

            lr.MapPoint(X, Y, ip, out scaledX, out scaledY);

            List <Column> potentialColumns = ip.GetColumnsFromCentre(scaledX, scaledY, radius, true);
            int           numToConnect     = (int)(potentialColumns.Count * zoneCoveragePerc);

            return(numToConnect);
        }
Example #3
0
        private void copyCaseToInputPlane(InputPlane ip)
        {
            //present case to InputPlane
            List <List <int> > CaseData = FileData[CurrCaseNum];

            for (int y = 0; y < CaseData.Count; y++)
            {
                for (int x = 0; x < CaseData[y].Count; x++)
                {
                    //ip.Columns[x][y].SetActive(Case[x][y] > 0 ? true : false);
                    if (CaseData[x][y] > 0)
                    {
                        ip.Columns[x][y].SetActive(true);
                    }
                    else
                    {
                        ip.Columns[x][y].SetActive(false);
                    }
                }
            }
        }
Example #4
0
        //present next training case to InputPlane
        public bool LoadNextCase(InputPlane ip)
        {
            //store previous case number
            LastCaseNum = CurrCaseNum;

            if (NumColumnsX == ip.NumColumnsX && NumColumnsY == ip.NumColumnsY)
            {
                //increment current case number
                if (++CurrCaseNum >= NumCases)
                {
                    CurrCaseNum = 0;
                    CurrEpochNum++;
                }
                copyCaseToInputPlane(ip);
                //ScreenUpdateData.OnDataChanged();
                NetConfigData.OnDataChanged();
            }
            else
            {
                return(false);
            }

            return(true);
        }
Example #5
0
 //create network layer structures to correspond to Trainer parameters
 public void CreateLayers()
 {
     Ip = new InputPlane(Trainer.NumColumnsX, Trainer.NumColumnsY);
     Lr = new Layer(Ip, Trainer.NumColumnsX, Trainer.NumColumnsY, NetConfigData.NumCellsInColumn);
 }