//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); }
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); }
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); } } } }
//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); }
//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); }