def images_from_folder(): (trn, val, preproc) = vis.images_from_folder( datadir='image_data/image_folder', data_aug=vis.get_data_aug(horizontal_flip=True), classes=['cat', 'dog'], train_test_names=['train', 'valid']) return (trn, val, preproc)
def test_folder(self): (trn, val, preproc) = vis.images_from_folder( datadir='image_data/image_folder', data_aug=vis.get_data_aug(horizontal_flip=True), classes=['cat', 'dog'], train_test_names=['train', 'valid']) model = vis.image_classifier('pretrained_resnet50', trn, val) learner = ktrain.get_learner(model=model, train_data=trn, val_data=val, batch_size=1) learner.freeze() # test weight decay self.assertEqual(learner.get_weight_decay(), None) learner.set_weight_decay(1e-2) self.assertAlmostEqual(learner.get_weight_decay(), 1e-2) # train hist = learner.autofit(1e-3, monitor=VAL_ACC_NAME) # test train self.assertAlmostEqual(max(hist.history['lr']), 1e-3) if max(hist.history[ACC_NAME]) == 0.5: raise Exception('unlucky initialization: please run test again') self.assertGreater(max(hist.history[ACC_NAME]), 0.8) # test top_losses obs = learner.top_losses(n=1, val_data=val) print(obs) if obs: self.assertIn(obs[0][0], list(range(U.nsamples_from_data(val)))) else: self.assertEqual(max(hist.history[VAL_ACC_NAME]), 1) # test load and save model learner.save_model('/tmp/test_model') learner.load_model('/tmp/test_model') # test validate cm = learner.validate(val_data=val) print(cm) for i, row in enumerate(cm): self.assertEqual(np.argmax(row), i) # test predictor p = ktrain.get_predictor(learner.model, preproc) r = p.predict_folder('image_data/image_folder/train/') print(r) self.assertEqual(r[0][1], 'cat') r = p.predict_proba_folder('image_data/image_folder/train/') self.assertEqual(np.argmax(r[0][1]), 0) r = p.predict_filename('image_data/image_folder/train/cat/cat.11737.jpg') self.assertEqual(r, ['cat']) r = p.predict_proba_filename('image_data/image_folder/train/cat/cat.11737.jpg') self.assertEqual(np.argmax(r), 0) p.save('/tmp/test_predictor') p = ktrain.load_predictor('/tmp/test_predictor') r = p.predict_filename('image_data/image_folder/train/cat/cat.11737.jpg') self.assertEqual(r, ['cat'])
def images_from_folder(): (trn, val, preproc) = vis.images_from_folder( datadir="image_data/image_folder", data_aug=vis.get_data_aug(horizontal_flip=True), classes=["cat", "dog"], train_test_names=["train", "valid"], ) return (trn, val, preproc)
def classify_from_folder(): (trn, val, preproc) = vis.images_from_folder( datadir='image_data/image_folder', data_aug=vis.get_data_aug(horizontal_flip=True), train_test_names=['train', 'valid']) model = vis.image_classifier('pretrained_resnet50', trn, val) learner = ktrain.get_learner(model=model, train_data=trn, val_data=val, batch_size=1) learner.freeze() hist = learner.autofit(1e-3, 10) return hist