Example #1
0
def testCount():
    rows = 5
    cols = 5
    coverage = 20
    numbits = 10
    numRounds = 500
    trainingRounds = numRounds / 4
    originalInputVector = InputVector(numbits)
    inputVector = InputVector(0)

    pred = dict()
    #repeat several times to increase activity:
    for i in range(3):
        inputVector.extendVector(originalInputVector)

    desiredLocalActivity = DESIRED_LOCAL_ACTIVITY

    r = Region(rows, cols, inputVector, coverage, desiredLocalActivity)
    outputVector = r.getOutputVector()
    correctBitPredctions = 0
    for round in range(numRounds):
        #print("Round: " + str(round))
        # if (round % 2 == 0):
        # 	val = 682
        # else:
        # 	val = 341
        val = round % 30
        setInput(originalInputVector, val)
        inputString = inputVector.toString()
        outputString = outputVector.toString()
        # for bit in inputVector.getVector():
        # 	printBit(bit)
        # print('')
        # print(inputString)

        if outputString in pred:
            curPredString = pred[outputString]
        else:
            curPredString = "[New input]"
        pred[outputString] = inputString

        printStats(inputString, curPredString)
        if (round > trainingRounds):
            correctBitPredctions += stringOverlap(curPredString,
                                                  pred[outputString])

        r.doRound()
        printColumnStats(r)
    for key in pred:
        print("key: " + key + " pred: " + pred[key])

    print("Accuracy: " + str(
        float(correctBitPredctions) / float((30 *
                                             (numRounds - trainingRounds)))))
Example #2
0
 def mapRegionToOutputVector(self):
     self.outputVector = InputVector(0)
     for c in self.columns:
         self.outputVector.extendVector(c.getOutputBits())
Example #3
0
 def getOutputBits(self):
     outputBits = InputVector(0)
     for cell in self.cells:
         outputBits.appendBit(cell.getOutputBit())
     return outputBits