def test_matrix_multiply(): m = Matrix([ [0.0, 0.1], [0.6, 1.0], ]) res = Matrix([ [0.0, 0.05], [0.3, 0.5], ]) assert matrix_multiply(m, 0.5) == res
def decode(self, signal, activation_threshold=None): assert len(signal) == self.conf.UNIT_OUTPUT_WIDTH candidates = [] for activity, pattern in zip(signal, self._patterns_store.get_objects()): candidate = matrix_multiply(pattern, activity) candidate_activity = self._activate(candidate, activation_threshold) if candidate_activity: candidates.append((candidate_activity, candidate)) if not candidates: return None return max(candidates, key=lambda item: item[0])[1]