def test_omp(self): data = np.vstack((np.random.randn(100, 2)+1, \ np.random.randn(100, 2)-1)) k = 20 centers = omp_mpi.omp1(data, k, max_iter=10) self.assertEqual(centers.shape[0], k) self.assertEqual(centers.shape[1], data.shape[1])
def train(self, incoming_patches): centroid = omp_mpi.omp1(incoming_patches, self.specs['k'], max_iter = self.specs.get('max_iter', 100), tol = self.specs.get('tol', 0.0001) ) return centroid, ()
def test_omp_singlenode(self): """ Test a simple OMP where the result is apparent """ data = np.vstack(( np.ones((100, 2)), \ np.tile([-1.,1.], (100,1)))) k = 2 centers = omp_mpi.omp1(data, k, max_iter=100) self.assertEqual(centers.shape[0], k) self.assertEqual(centers.shape[1], data.shape[1]) np.testing.assert_array_almost_equal(np.abs(centers), 1./math.sqrt(2)) self.assertTrue((centers[0,0] * centers[0,1] > 0) ^ \ (centers[1,0] * centers[1,1] > 0))
def test_omp_singlenode(self): """ Test a simple OMP where the result is apparent """ data = np.vstack(( np.ones((100, 2)), \ np.tile([-1.,1.], (100,1)))) k = 2 centers = omp_mpi.omp1(data, k, max_iter=100) self.assertEqual(centers.shape[0], k) self.assertEqual(centers.shape[1], data.shape[1]) np.testing.assert_array_almost_equal(np.abs(centers), 1. / math.sqrt(2)) self.assertTrue((centers[0,0] * centers[0,1] > 0) ^ \ (centers[1,0] * centers[1,1] > 0))
def test_omp_multinode(self): if mpi.SIZE == 1: return if mpi.RANK % 2: data = np.ones((100, 2)) else: data = np.tile([-1.,1.], (100,1)) k = 2 centers = omp_mpi.omp1(data, k, max_iter=100) self.assertEqual(centers.shape[0], k) self.assertEqual(centers.shape[1], data.shape[1]) np.testing.assert_array_almost_equal(np.abs(centers), 1./math.sqrt(2)) self.assertTrue((centers[0,0] * centers[0,1] > 0) ^ \ (centers[1,0] * centers[1,1] > 0))
def test_omp_multinode(self): if mpi.SIZE == 1: return if mpi.RANK % 2: data = np.ones((100, 2)) else: data = np.tile([-1., 1.], (100, 1)) k = 2 centers = omp_mpi.omp1(data, k, max_iter=100) self.assertEqual(centers.shape[0], k) self.assertEqual(centers.shape[1], data.shape[1]) np.testing.assert_array_almost_equal(np.abs(centers), 1. / math.sqrt(2)) self.assertTrue((centers[0,0] * centers[0,1] > 0) ^ \ (centers[1,0] * centers[1,1] > 0))