def testCrossValidateSvm(self): glab.SetCorpus(EXAMPLE_LARGE_CORPUS) glab.ImprintS2Prototypes(NUM_PROTOTYPES) glab.CrossValidateSvm() e = glab.GetExperiment() self.assertEqual(e.train_results, None) self.assertNotEqual(e.test_results['accuracy'], None)
def testImprintS2Prototypes(self): glab.SetCorpus(EXAMPLE_CORPUS) glab.ImprintS2Prototypes(NUM_PROTOTYPES) e = glab.GetExperiment() # S2 kernels are stored as a list of arrays, with one list entry per kernel # size. Check that we've imprinted NUM_PROTOTYPES patches for each kernel # size. self.assertEqual(map(len, e.model.s2_kernels), [ NUM_PROTOTYPES ] * len(e.model.s2_kernels) )
def testStoreExperiment_notEmpty(self): temp_dir = TempDir() glab.SetCorpus(EXAMPLE_CORPUS) glab.ImprintS2Prototypes(10) glab.RunSvm() old_exp = glab.GetExperiment() exp_path = pjoin(temp_dir.dir, 'dat') glab.StoreExperiment(exp_path) new_exp = glab.LoadExperiment(exp_path) self.assertEqual(new_exp, old_exp)
def _testSetCorpus(self, images, expected_classes): root = MockDirs(**images) glab.SetCorpus(root.dir, classes = expected_classes) e = glab.GetExperiment() self.assertEqual(e.corpus, root.dir) self.assertNotEqual(e.classes, None) if expected_classes == None: self.assertEqual(sorted(e.classes), sorted(images.keys())) else: self.assertEqual(e.classes, expected_classes) for idx in range(len(e.classes)): actual_images = sorted(map(os.path.basename, e.train_images[idx] + e.test_images[idx])) expected_images = sorted(images[e.classes[idx]]) self.assertEqual(actual_images, expected_images)
def _testSetTrainTestSplitFromDirs(self, train_images, test_images, expected_classes): root = MockDirs(train = train_images, test = test_images) glab.SetTrainTestSplitFromDirs(pjoin(root.dir, 'train'), pjoin(root.dir, 'test'), classes = expected_classes) e = glab.GetExperiment() self.assertNotEqual(e.classes, None) if expected_classes == None: self.assertEqual(sorted(e.classes), sorted(train_images.keys())) else: self.assertEqual(e.classes, expected_classes) for idx in range(len(e.classes)): cls = e.classes[idx] actual_images = sorted(map(os.path.basename, e.train_images[idx])) self.assertEqual(actual_images, sorted(train_images[cls])) actual_images = sorted(map(os.path.basename, e.test_images[idx])) self.assertEqual(actual_images, sorted(test_images[cls]))
def _testSetCorpusSubdirs(self, images, expected_classes): root = MockDirs(**images) if expected_classes == None: subdirs = [ pjoin(root.dir, cls) for cls in images.keys() ] else: subdirs = [ pjoin(root.dir, cls) for cls in expected_classes ] glab.SetCorpusSubdirs(subdirs, classes = expected_classes, balance = False) e = glab.GetExperiment() self.assertNotEqual(e.classes, None) if expected_classes == None: self.assertEqual(sorted(e.classes), sorted(images.keys())) else: self.assertEqual(e.classes, expected_classes) for idx in range(len(e.classes)): actual_images = sorted(map(os.path.basename, e.train_images[idx] + e.test_images[idx])) expected_images = sorted(images[e.classes[idx]]) self.assertEqual(actual_images, expected_images)
def testMakeNormalRandomS2Prototypes(self): glab.SetCorpus(EXAMPLE_CORPUS) glab.MakeNormalRandomS2Prototypes(NUM_PROTOTYPES) e = glab.GetExperiment() self.assertEqual(map(len, e.model.s2_kernels), [ NUM_PROTOTYPES ] * len(e.model.s2_kernels) )
def testMakeUniformRandomS2Prototypes(self): glab.MakeUniformRandomS2Prototypes(NUM_PROTOTYPES) e = glab.GetExperiment() self.assertEqual(map(len, e.model.s2_kernels), [ NUM_PROTOTYPES ] * len(e.model.s2_kernels) )
def testRunSvm(self): glab.SetCorpus(EXAMPLE_CORPUS) glab.RunSvm() e = glab.GetExperiment() self.assertNotEqual(e.train_results['accuracy'], None) self.assertNotEqual(e.test_results['accuracy'], None)