def computeLayerData(self, layerOut):
        """
    Override computeLayer so we call into C++ code for fast performance.
    @param layerOut: the output HmaxLayer to store results in.
    """
        if len(self.learned) == 0:  # if untrained, do not compute
            return
        if self.cLearnedW == None:
            self.cLearnedW = hmaxc.floatCArray(len(self.learned) * 16)
            self.cLearnedPF = hmaxc.floatCArray(len(self.learned) * 16)
            for f in xrange(len(self.learned)):
                fi = f * 16
                # self.learned is [f][4][4][2] array...need to copy correctly
                for xi in xrange(4):
                    for yi in xrange(4):
                        w, pf = self.learned[f][xi][yi]
                        self.cLearnedW[fi + ((yi * 4) + xi)] = w
                        self.cLearnedPF[fi + ((yi * 4) + xi)] = pf

        # print "C++ GRBF:"
        layerIn = layerOut.inputLayers[0]
        self.cGRBFFilter.computeLayer(
            self.cLearnedW, self.cLearnedPF, len(self.learned) * 16, layerIn.cLayer, layerOut.cLayer
        )
        layerOut.setLayerDataFromCArray(checkSame=True)
Example #2
0
 def __init__(self, level, xySize, fSize, xyStart, xySpace, inputLayers=[]):
   Layer.__init__(self, level, xySize, fSize, xyStart, xySpace, inputLayers)
   
   #int xSize, int ySize, int fSize, float xStart, float yStart,
   #  float xSpace, float ySpace
   self.cArray = hmaxc.floatCArray(self.fSize * self.xSize*self.ySize)
   self.cLayer = hmaxc.LayerC(xySize[0], xySize[1], fSize, xyStart[0], \
                              xyStart[1], xySpace[0], xySpace[1], self.cArray)
Example #3
0
    def __init__(self, level, xySize, fSize, xyStart, xySpace, inputLayers=[]):
        Layer.__init__(self, level, xySize, fSize, xyStart, xySpace,
                       inputLayers)

        #int xSize, int ySize, int fSize, float xStart, float yStart,
        #  float xSpace, float ySpace
        self.cArray = hmaxc.floatCArray(self.fSize * self.xSize * self.ySize)
        self.cLayer = hmaxc.LayerC(xySize[0], xySize[1], fSize, xyStart[0], \
                                   xyStart[1], xySpace[0], xySpace[1], self.cArray)
Example #4
0
 def getLayerDataAsCArray(self, f=0):
     """ 
 Return a copy of the layer's data matrix for index f converted 
 into a flattened 1D float array (C float[]).
 """
     if self.cArray == None:
         self.cArray = hmaxc.floatCArray(self.xSize * self.ySize)
     for j in xrange(self.ySize):
         for i in xrange(self.xSize):
             self.cArray[(j * self.xSize) + i] = self.array[f][i][j]
     return self.cArray
Example #5
0
 def getLayerDataAsCArray(self, f=0):
     """ 
 Return a copy of the layer's data matrix for index f converted 
 into a flattened 1D float array (C float[]).
 """
     if self.cArray == None:
         self.cArray = hmaxc.floatCArray(self.xSize * self.ySize)
     for j in xrange(self.ySize):
         for i in xrange(self.xSize):
             self.cArray[(j * self.xSize) + i] = self.array[f][i][j]
     return self.cArray
 def computeLayerData(self, layerOut):
   """
   Override computeLayer so we call into C++ code for fast performance.
   @param layerOut: the output HmaxLayer to store results in.
   """
   if len(self.learned)==0: #if untrained, do not compute
     return
   if self.cLearnedW==None:
     self.cLearnedW = hmaxc.floatCArray(len(self.learned)*16)
     self.cLearnedPF = hmaxc.floatCArray(len(self.learned)*16)
     for f in xrange(len(self.learned)):
       fi = f*16
       #self.learned is [f][4][4][2] array...need to copy correctly
       for xi in xrange(4):
         for yi in xrange(4):
           w,pf = self.learned[f][xi][yi]
           self.cLearnedW[fi+((yi*4)+xi)] = w
           self.cLearnedPF[fi+((yi*4)+xi)] = pf
   
   #print "C++ GRBF:"
   layerIn = layerOut.inputLayers[0]
   self.cGRBFFilter.computeLayer(self.cLearnedW, self.cLearnedPF, \
                                 len(self.learned)*16, layerIn.cLayer, layerOut.cLayer)
   layerOut.setLayerDataFromCArray(checkSame=True)
Example #7
0
 def __init__(self, thetas, size=11, lam=5.6, sigma=4.5, aspect=0.3):
   """
   @param size: the integer size (length and width) for this filter.
   @param thetas: the set of angle orientations, in radians, to use for this filter.
   @param lam: the lambda wavelength this filter is tuned with.
   @param sigma:
   @param aspect: the aspect ratio.
   """
   #GaborFilterC(float thetas[], int thetaCount, int size=11, 
   #             float lam=5.6, float sigma=4.5, float aspect=0.3);
   self.size = size
   cthetas = hmaxc.floatCArray(len(thetas))
   for i in xrange(len(thetas)):
     print "pyTheta"+str(i)+": ",thetas[i]
     cthetas[i] = thetas[i]
   self.cGabor = hmaxc.GaborFilterC(cthetas, len(thetas), size, lam, sigma, aspect)
 def __init__(self, thetas, size=11, lam=5.6, sigma=4.5, aspect=0.3):
     """
 @param size: the integer size (length and width) for this filter.
 @param thetas: the set of angle orientations, in radians, to use for this filter.
 @param lam: the lambda wavelength this filter is tuned with.
 @param sigma:
 @param aspect: the aspect ratio.
 """
     #GaborFilterC(float thetas[], int thetaCount, int size=11,
     #             float lam=5.6, float sigma=4.5, float aspect=0.3);
     self.size = size
     cthetas = hmaxc.floatCArray(len(thetas))
     for i in xrange(len(thetas)):
         #print "pyTheta"+str(i)+": ",thetas[i]
         cthetas[i] = thetas[i]
     self.cGabor = hmaxc.GaborFilterC(cthetas, len(thetas), size, lam,
                                      sigma, aspect)