Ejemplo n.º 1
0
  def createNet(self):
    """ Set up the structure of the network """
    net = Network()

    Network.unregisterRegion(ImageSensor.__name__)
    Network.registerRegion(ImageSensor)

    imageSensorParams = copy.deepcopy(DEFAULT_IMAGESENSOR_PARAMS)
    if self.loggingDir is not None:
      imageSensorParams["logDir"] = "sensorImages/" + self.loggingDir
      imageSensorParams["logOutputImages"] = 1
      imageSensorParams["logOriginalImages"] = 1
      imageSensorParams["logFilteredImages"] = 1
      imageSensorParams["logLocationImages"] = 1
      imageSensorParams["logLocationOnOriginalImage"] = 1

    net.addRegion("sensor", "py.ImageSensor",
                  yaml.dump(imageSensorParams))
    net.addRegion("SP", "py.SPRegion", yaml.dump(DEFAULT_SP_PARAMS))
    net.addRegion("classifier","py.KNNClassifierRegion",
                  yaml.dump(DEFAULT_CLASSIFIER_PARAMS))

    net.link("sensor", "SP", "UniformLink", "",
             srcOutput = "dataOut", destInput = "bottomUpIn")
    net.link("SP", "classifier", "UniformLink", "",
             srcOutput = "bottomUpOut", destInput = "bottomUpIn")
    net.link("sensor", "classifier", "UniformLink", "",
             srcOutput = "categoryOut", destInput = "categoryIn")

    self.net = net
    self.networkSensor = self.net.regions["sensor"]
    self.networkSP = self.net.regions["SP"]
    self.networkClassifier = self.net.regions["classifier"]
Ejemplo n.º 2
0
def runExperiment():
    Network.unregisterRegion("ImageSensor")
    Network.registerRegion(ImageSensor)
    Network.registerRegion(PCANode)
    inputSize = 8

    net = Network()
    sensor = net.addRegion(
        "sensor", "py.ImageSensor",
        "{ width: %d, height: %d }" % (inputSize, inputSize))

    params = ("{bottomUpCount: %s, "
              " SVDSampleCount: 5, "
              " SVDDimCount: 2}" % inputSize)

    pca = net.addRegion("pca", "py.PCANode", params)

    linkParams = "{ mapping: in, rfSize: [%d, %d] }" % (inputSize, inputSize)
    net.link("sensor", "pca", "UniformLink", linkParams, "dataOut",
             "bottomUpIn")

    net.initialize()

    for i in range(10):
        pca.getSelf()._testInputs = numpy.random.random([inputSize])
        net.run(1)
        print s.sendRequest("nodeOPrint pca_node")
Ejemplo n.º 3
0
def runExperiment():
  Network.unregisterRegion("ImageSensor")
  Network.registerRegion(ImageSensor)
  Network.registerRegion(PCANode)
  inputSize = 8

  net = Network()
  sensor = net.addRegion(
      "sensor", "py.ImageSensor" ,
      "{ width: %d, height: %d }" % (inputSize, inputSize))

  params = ("{bottomUpCount: %s, "
            " SVDSampleCount: 5, "
            " SVDDimCount: 2}" % inputSize)

  pca = net.addRegion("pca", "py.PCANode", params)

  linkParams = "{ mapping: in, rfSize: [%d, %d] }" % (inputSize, inputSize)
  net.link("sensor", "pca", "UniformLink", linkParams, "dataOut", "bottomUpIn")

  net.initialize()

  for i in range(10):
    pca.getSelf()._testInputs = numpy.random.random([inputSize])
    net.run(1)
    print s.sendRequest("nodeOPrint pca_node")
Ejemplo n.º 4
0
  def createNet(self):
    """ Set up the structure of the network """
    net = Network()

    Network.unregisterRegion(SaccadeSensor.__name__)
    Network.registerRegion(SaccadeSensor)

    Network.registerRegion(TMRegion)

    imageSensorParams = copy.deepcopy(DEFAULT_IMAGESENSOR_PARAMS)
    if self.loggingDir is not None:
      imageSensorParams["logDir"] = "sensorImages/" + self.loggingDir
      imageSensorParams["logOutputImages"] = 1
      imageSensorParams["logOriginalImages"] = 1
      imageSensorParams["logFilteredImages"] = 1
      imageSensorParams["logLocationImages"] = 1
      imageSensorParams["logLocationOnOriginalImage"] = 1

    net.addRegion("sensor", "py.SaccadeSensor",
                  yaml.dump(imageSensorParams))
    sensor = net.regions["sensor"].getSelf()

    DEFAULT_SP_PARAMS["columnCount"] = sensor.getOutputElementCount("dataOut")
    net.addRegion("SP", "py.SPRegion", yaml.dump(DEFAULT_SP_PARAMS))
    sp = net.regions["SP"].getSelf()

    DEFAULT_TM_PARAMS["columnDimensions"] = (sp.getOutputElementCount("bottomUpOut"),)
    net.addRegion("TM", "py.TMRegion", yaml.dump(DEFAULT_TM_PARAMS))

    net.addRegion("classifier","py.KNNClassifierRegion",
                  yaml.dump(DEFAULT_CLASSIFIER_PARAMS))


    net.link("sensor", "SP", "UniformLink", "",
             srcOutput="dataOut", destInput="bottomUpIn")
    net.link("SP", "TM", "UniformLink", "",
             srcOutput="bottomUpOut", destInput="activeColumns")
    net.link("sensor", "TM", "UniformLink", "",
             srcOutput="saccadeOut", destInput="activeExternalCells")
    net.link("TM", "classifier", "UniformLink", "",
             srcOutput="predictedActiveCells", destInput="bottomUpIn")
    net.link("sensor", "classifier", "UniformLink", "",
             srcOutput="categoryOut", destInput="categoryIn")

    self.net = net
    self.networkSensor = self.net.regions["sensor"]
    self.networkSP = self.net.regions["SP"]
    self.networkTM = self.net.regions["TM"]
    self.networkClassifier = self.net.regions["classifier"]
Ejemplo n.º 5
0
  def loadFromFile(self, filename):
    """ Load a serialized network
    :param filename: Where the network should be loaded from
    """
    print "Loading network from {file}...".format(file=filename)
    Network.unregisterRegion(SaccadeSensor.__name__)
    Network.registerRegion(SaccadeSensor)

    Network.registerRegion(TMRegion)

    self.net = Network(filename)

    self.networkSensor = self.net.regions["sensor"]
    self.networkSensor.setParameter("numSaccades", SACCADES_PER_IMAGE_TESTING)

    self.networkSP = self.net.regions["SP"]
    self.networkClassifier = self.net.regions["classifier"]

    self.numCorrect = 0
Ejemplo n.º 6
0
  def loadFromFile(self, filename):
    """ Load a serialized network
    :param filename: Where the network should be loaded from
    """
    print "Loading network from {file}...".format(file=filename)
    Network.unregisterRegion(SaccadeSensor.__name__)
    Network.registerRegion(SaccadeSensor)

    Network.registerRegion(ExtendedTMRegion)

    self.net = Network(filename)

    self.networkSensor = self.net.regions["sensor"]
    self.networkSensor.setParameter("numSaccades", SACCADES_PER_IMAGE_TESTING)

    self.networkSP = self.net.regions["SP"]
    self.networkClassifier = self.net.regions["classifier"]

    self.numCorrect = 0
Ejemplo n.º 7
0
    def createNet(self):
        """ Set up the structure of the network """
        net = Network()

        Network.unregisterRegion(SaccadeSensor.__name__)
        Network.registerRegion(SaccadeSensor)
        Network.unregisterRegion(ExtendedTMRegion.__name__)
        Network.registerRegion(ExtendedTMRegion)
        Network.unregisterRegion(ColumnPoolerRegion.__name__)
        Network.registerRegion(ColumnPoolerRegion)

        imageSensorParams = copy.deepcopy(DEFAULT_IMAGESENSOR_PARAMS)
        if self.loggingDir is not None:
            imageSensorParams["logDir"] = "sensorImages/" + self.loggingDir
            imageSensorParams["logOutputImages"] = 1
            imageSensorParams["logOriginalImages"] = 1
            imageSensorParams["logFilteredImages"] = 1
            imageSensorParams["logLocationImages"] = 1
            imageSensorParams["logLocationOnOriginalImage"] = 1

        net.addRegion("sensor", "py.SaccadeSensor",
                      yaml.dump(imageSensorParams))
        sensor = net.regions["sensor"].getSelf()

        DEFAULT_SP_PARAMS["columnCount"] = sensor.getOutputElementCount(
            "dataOut")
        net.addRegion("SP", "py.SPRegion", yaml.dump(DEFAULT_SP_PARAMS))
        sp = net.regions["SP"].getSelf()

        DEFAULT_TM_PARAMS["columnDimensions"] = (
            sp.getOutputElementCount("bottomUpOut"), )
        DEFAULT_TM_PARAMS["basalInputWidth"] = sensor.getOutputElementCount(
            "saccadeOut")
        net.addRegion("TM", "py.ExtendedTMRegion",
                      yaml.dump(DEFAULT_TM_PARAMS))

        net.addRegion("TP", "py.ColumnPoolerRegion",
                      yaml.dump(DEFAULT_TP_PARAMS))

        net.addRegion("classifier", "py.KNNClassifierRegion",
                      yaml.dump(DEFAULT_CLASSIFIER_PARAMS))

        net.link("sensor",
                 "SP",
                 "UniformLink",
                 "",
                 srcOutput="dataOut",
                 destInput="bottomUpIn")
        net.link("SP",
                 "TM",
                 "UniformLink",
                 "",
                 srcOutput="bottomUpOut",
                 destInput="activeColumns")
        net.link("sensor",
                 "TM",
                 "UniformLink",
                 "",
                 srcOutput="saccadeOut",
                 destInput="basalInput")
        net.link("TM",
                 "TP",
                 "UniformLink",
                 "",
                 srcOutput="predictedActiveCells",
                 destInput="feedforwardInput")
        net.link("TP",
                 "TM",
                 "UniformLink",
                 "",
                 srcOutput="feedForwardOutput",
                 destInput="apicalInput")
        net.link("TP",
                 "classifier",
                 "UniformLink",
                 "",
                 srcOutput="feedForwardOutput",
                 destInput="bottomUpIn")
        #net.link("TM", "classifier", "UniformLink", "",
        #         srcOutput="predictedActiveCells", destInput="bottomUpIn")
        net.link("sensor",
                 "classifier",
                 "UniformLink",
                 "",
                 srcOutput="categoryOut",
                 destInput="categoryIn")

        self.net = net
        self.networkSensor = self.net.regions["sensor"]
        self.networkSP = self.net.regions["SP"]
        self.networkTM = self.net.regions["TM"]
        self.networkTP = self.net.regions["TP"]
        self.networkClassifier = self.net.regions["classifier"]