def __init__( self, columnCount, # Number of columns in the SP, a required parameter inputWidth, # Size of inputs to the SP, a required parameter **kwargs): if columnCount <= 0 or inputWidth <= 0: raise TypeError( "Parameters columnCount and inputWidth must be > 0") # Pull out the spatial arguments automatically # These calls whittle down kwargs and create instance variables of SPRegion sArgTuples = _buildArgs(FDRCSpatial2.FDRCSpatial2.__init__, self, kwargs) # Make a list of automatic spatial arg names for later use self._spatialArgNames = [t[0] for t in sArgTuples] # Learning and SP parameters. # By default we start out in stage learn with inference disabled self.learningMode = True self.inferenceMode = False self.anomalyMode = False self.topDownMode = False self.columnCount = columnCount self.inputWidth = inputWidth PyRegion.__init__(self, **kwargs) # Initialize all non-persistent base members, as well as give # derived class an opportunity to do the same. self._loaded = False self._initializeEphemeralMembers() # Debugging support, used in _conditionalBreak self.breakPdb = False self.breakKomodo = False # Defaults for all other parameters self.logPathInput = '' self.logPathOutput = '' self.logPathOutputDense = '' self._fpLogSPInput = None self._fpLogSP = None self._fpLogSPDense = None # # Variables set up in initInNetwork() # # FDRCSpatial instance self._sfdr = None # Spatial pooler's bottom-up output value: hang on to this output for # top-down inference and for debugging self._spatialPoolerOutput = None # Spatial pooler's bottom-up input: hang on to this for supporting the # spInputNonZeros parameter self._spatialPoolerInput = None
def __init__(self, columnCount, # Number of columns in the SP, a required parameter inputWidth, # Size of inputs to the SP, a required parameter spatialImp=getDefaultSPImp(), #'py', 'cpp' **kwargs): if columnCount <= 0 or inputWidth <=0: raise TypeError("Parameters columnCount and inputWidth must be > 0") # Pull out the spatial arguments automatically # These calls whittle down kwargs and create instance variables of SPRegion self.SpatialClass = getSPClass(spatialImp) sArgTuples = _buildArgs(self.SpatialClass.__init__, self, kwargs) # Make a list of automatic spatial arg names for later use self._spatialArgNames = [t[0] for t in sArgTuples] # Learning and SP parameters. # By default we start out in stage learn with inference disabled self.learningMode = True self.inferenceMode = False self.anomalyMode = False self.topDownMode = False self.columnCount = columnCount self.inputWidth = inputWidth PyRegion.__init__(self, **kwargs) # Initialize all non-persistent base members, as well as give # derived class an opportunity to do the same. self._loaded = False self._initializeEphemeralMembers() # Debugging support, used in _conditionalBreak self.breakPdb = False self.breakKomodo = False # Defaults for all other parameters self.logPathInput = '' self.logPathOutput = '' self.logPathOutputDense = '' self._fpLogSPInput = None self._fpLogSP = None self._fpLogSPDense = None # # Variables set up in initInNetwork() # # Spatial instance self._sfdr = None # Spatial pooler's bottom-up output value: hang on to this output for # top-down inference and for debugging self._spatialPoolerOutput = None # Spatial pooler's bottom-up input: hang on to this for supporting the # spInputNonZeros parameter self._spatialPoolerInput = None
def __init__(self, columnCount, # Number of columns in the SP, a required parameter inputWidth, # Size of inputs to the SP, a required parameter cellsPerColumn, # Number of cells per column, required # Constructor arguments are picked up automatically. There is no # need to add them anywhere in TPRegion, unless you need to do # something special with them. See docstring above. orColumnOutputs=False, cellsSavePath='', temporalImp=gDefaultTemporalImp, anomalyMode=False, **kwargs): # Which Temporal implementation? FDRTemporalClass = _getTPClass(temporalImp) # Make a list of automatic temporal arg names for later use # Pull out the temporal arguments automatically # These calls whittle down kwargs and create instance variables of TPRegion tArgTuples = _buildArgs(FDRTemporalClass.__init__, self, kwargs) self._temporalArgNames = [t[0] for t in tArgTuples] self.learningMode = True # Start out with learning enabled self.inferenceMode = False self.anomalyMode = anomalyMode self.topDownMode = False self.columnCount = columnCount self.inputWidth = inputWidth self.outputWidth = columnCount * cellsPerColumn self.cellsPerColumn = cellsPerColumn PyRegion.__init__(self, **kwargs) # Initialize all non-persistent base members, as well as give # derived class an opportunity to do the same. self._loaded = False self._initialize() # Debugging support, used in _conditionalBreak self.breakPdb = False self.breakKomodo = False # TPRegion only, or special handling self.orColumnOutputs = orColumnOutputs self.temporalImp = temporalImp # Various file names self.storeDenseOutput = False self.logPathOutput = '' self.cellsSavePath = cellsSavePath self._fpLogTPOutput = None # Variables set up in initInNetwork() self._tfdr = None # FDRTemporal instance
def __init__( self, columnCount, # Number of columns in the SP, a required parameter inputWidth, # Size of inputs to the SP, a required parameter cellsPerColumn, # Number of cells per column, required # Constructor arguments are picked up automatically. There is no # need to add them anywhere in TPRegion, unless you need to do # something special with them. See docstring above. orColumnOutputs=False, cellsSavePath='', temporalImp=gDefaultTemporalImp, anomalyMode=False, computePredictedActiveCellIndices=False, **kwargs): # Which Temporal implementation? TemporalClass = _getTPClass(temporalImp) # Make a list of automatic temporal arg names for later use # Pull out the temporal arguments automatically # These calls whittle down kwargs and create instance variables of TPRegion tArgTuples = _buildArgs(TemporalClass.__init__, self, kwargs) self._temporalArgNames = [t[0] for t in tArgTuples] self.learningMode = True # Start out with learning enabled self.inferenceMode = False self.anomalyMode = anomalyMode self.computePredictedActiveCellIndices = computePredictedActiveCellIndices self.topDownMode = False self.columnCount = columnCount self.inputWidth = inputWidth self.outputWidth = columnCount * cellsPerColumn self.cellsPerColumn = cellsPerColumn PyRegion.__init__(self, **kwargs) # Initialize all non-persistent base members, as well as give # derived class an opportunity to do the same. self._loaded = False self._initialize() # Debugging support, used in _conditionalBreak self.breakPdb = False self.breakKomodo = False # TPRegion only, or special handling self.orColumnOutputs = orColumnOutputs self.temporalImp = temporalImp # Various file names self.storeDenseOutput = False self.logPathOutput = '' self.cellsSavePath = cellsSavePath self._fpLogTPOutput = None # Variables set up in initInNetwork() self._tfdr = None # FDRTemporal instance
def __init__(self, # Constructor arguments for FDRSpatial and FDRTemporal are # picked up automatically. There is no need to add them anywhere # in CLARegion, unless you need to do something special with them. # See docstring above. # These args are used by CLARegion only or need special handling disableSpatial=False, disableTemporal=False, orColumnOutputs=False, nCellsPerCol=1, trainingStep = 'temporal', cellsSavePath='', statelessMode=False, storeDenseOutput=False, #DEPRECATED outputCloningWidth=0, outputCloningHeight=0, saveMasterCoincImages = 0, temporalImp='py', #'py', 'simple' or 'cpp' spatialImp=getDefaultSPImp(), #'py', 'cpp', or 'oldpy' computeTopDown = 0, nMultiStepPrediction = 0, # We have separate seeds for spatial and temporal spSeed=-1, tpSeed=-1, # Needed for vision framework bottomUpOut=None, **kwargs): #if disableSpatial and disableTemporal: # raise RuntimeError("Disable both the spatial and temporal components? " # "That would make it too easy.") # Make sure our tuple arguments are integers for name in ['coincidencesShape', 'inputShape']: if name in kwargs: (height, width) = kwargs[name] kwargs[name] = (int(height), int(width)) # Which FDR Temporal implementation? FDRCSpatialClass = getSPClass(spatialImp) FDRTemporalClass = _getTPClass(temporalImp) # Pull out the spatial and temporal arguments automatically # These calls whittle down kwargs and create instance variables of CLARegion sArgTuples = _buildArgs(FDRCSpatialClass.__init__, self, kwargs) tArgTuples = _buildArgs(FDRTemporalClass.__init__, self, kwargs) # Make a list of automatic spatial and temporal arg names for later use self._spatialArgNames = [t[0] for t in sArgTuples] self._temporalArgNames = [t[0] for t in tArgTuples] # Start out in stage learn self.learningMode = True self.inferenceMode = False PyRegion.__init__(self, **kwargs) # Initialize all non-persistent base members, as well as give # derived class an opportunity to do the same. self._loaded = False self._initialize() # Debugging support, used in _conditionalBreak self.breakPdb = False self.breakKomodo = False # CLARegion only, or special handling self.disableSpatial = disableSpatial self.saveMasterCoincImages = saveMasterCoincImages self.disableTemporal = disableTemporal self.orColumnOutputs = orColumnOutputs self.nCellsPerCol = nCellsPerCol # Modified in initInNetwork self.coincidenceCount = self.coincidencesShape[0] * self.coincidencesShape[1] self.temporalImp = temporalImp self.spatialImp = spatialImp self.computeTopDown = computeTopDown self.nMultiStepPrediction = nMultiStepPrediction # Handle -1 for cloning sizes, which essentially just means no cloning... # ...also handle 0, since that's the new default... if outputCloningWidth in (0, -1): outputCloningWidth = self.coincidencesShape[1] if outputCloningHeight in (0, -1): outputCloningHeight = self.coincidencesShape[0] self.outputCloningWidth = outputCloningWidth self.outputCloningHeight = outputCloningHeight # Make the clone map, which is used by both spatial and temporal components. self._cloneMap, self._numCloneMasters = self.makeCloneMap( self.coincidencesShape, outputCloningWidth, outputCloningHeight ) # Both FDRCSpatial and FDRTemporal self.tpSeed = tpSeed self.spSeed = spSeed self.trainingStep = trainingStep self.logPathSPInput = '' self.logPathSP = '' self.logPathSPDense = '' self.logPathTP = '' # Used to save TP cells data structure to auxiliary file self.cellsSavePath = cellsSavePath # Instructs node to ignore past temporal state when operating in # inference mode; i.e., tells node to ignore the actual resetSignal # input and treat it as if the resetSignal was *always* set (in # inference mode only) self.statelessMode = statelessMode self._hasRunInference = False # Variables set up in initInNetwork() self._sfdr = None # FDRCSpatial instance self._tfdr = None # FDRTemporal instance self._numOutputs = None # Number of outputs allocated per node self._spatialPoolerOutput = None # Hang on to this output for debugging self._tpSeqOutput = None # Hang on to this for supporting the # tpSeqOutputNonZeros parameter self._spatialPoolerInput = None # Hang on to this for supporting the # spInputNonZeros parameter self._rfOutput = None # Hang on to this for supporting the # tpOutputNonZeros parameter # Read-only node parameters self.activeOutputCount = None self.cppOutput = None self.file = None # For inspector usage #from dbgp.client import brk; brk(port=9019) self._spatialSpec, self._temporalSpec, self._otherSpec = \ _getAdditionalSpecs(spatialImp=self.spatialImp, temporalImp=self.temporalImp)