Beispiel #1
0
    def __init__(self, params=None, debug=False):
        """
        Args:
            params: dict with parameters for spatial and temporal poolers
            debug: whether to print debug messages
        """
        params = utils.fill_default_params(params, default_params)
        self.debug = debug

        assert(params['maxCoincidenceCount'] > params['requestedGroupsCount'])
        if params['spatialPoolerAlgorithm'] == 'gaussian':
            assert(params['sigma'] >= 0)
        assert(params['maxDistance'] >= 0)

        self.sp = SpatialPooler(
            algorithm=params['spatialPoolerAlgorithm'],
            max_distance=params['maxDistance'],
            sigma=params['sigma'],
            max_coincidence_count=params['maxCoincidenceCount'],
            rare_coincidence_threshold=params['rareCoincidenceThreshold'],
            ignore_background_pattern=params['ignoreBackgroundPattern'],
            background_color=params['backgroundColor'],
            debug=self.debug
        )

        self.tp = TemporalPooler(
            algorithm=params['temporalPoolerAlgorithm'],
            transition_memory=params['transitionMemory'],
            requested_group_count=params['requestedGroupsCount'],
            symmetrizeTAM=params['symmetrizeTAM'],
            debug=self.debug
        )

        self.tp_first_run = True
        self.y = None  # spatial inference in fw direction
        self.fw_mesage = None  # forward output of the node