def test_cora(self): (trn, val, preproc, df_holdout, G_complete) = gr.graph_nodes_from_csv( "graph_data/cora/cora.content", "graph_data/cora/cora.cites", sample_size=20, holdout_pct=0.1, holdout_for_inductive=True, train_pct=0.1, sep="\t", ) learner = ktrain.get_learner( model=gr.graph_node_classifier( "graphsage", trn, ), train_data=trn, # val_data=val, batch_size=64, ) lr = 0.01 hist = learner.autofit(lr, 10) # test training results self.assertAlmostEqual(max(hist.history["lr"]), lr) self.assertGreater(max(hist.history[ACC_NAME]), 0.9) # test top losses obs = learner.top_losses(n=1, val_data=val) self.assertIn(obs[0][0], list(range(val.targets.shape[0]))) learner.view_top_losses(preproc=preproc, n=1, val_data=val) # test weight decay self.assertEqual(learner.get_weight_decay(), None) learner.set_weight_decay(1e-2) self.assertAlmostEqual(learner.get_weight_decay(), 1e-2) # test load and save model learner.save_model("/tmp/test_model") learner.load_model("/tmp/test_model") # test validate learner.validate(val_data=val) cm = learner.validate(val_data=val) print(cm) for i, row in enumerate(cm): if i == 5: continue # many 5s are classified as 6s self.assertEqual(np.argmax(row), i) # test predictor p = ktrain.get_predictor(learner.model, preproc) self.assertIn(p.predict_transductive(val.ids[0:1])[0], preproc.get_classes()) p.predict_transductive(val.ids[0:1]) p.save("/tmp/test_predictor") p = ktrain.load_predictor("/tmp/test_predictor") self.assertIn(p.predict_transductive(val.ids[0:1])[0], preproc.get_classes())
def test_cora(self): (trn, val, preproc, df_holdout, G_complete) = gr.graph_nodes_from_csv('graph_data/cora/cora.content', 'graph_data/cora/cora.cites', sample_size=20, holdout_pct=0.1, holdout_for_inductive=True, train_pct=0.1, sep='\t') learner = ktrain.get_learner( model=gr.graph_node_classifier( 'graphsage', trn, ), train_data=trn, #val_data=val, batch_size=64) lr = 0.01 hist = learner.autofit(lr, 10) # test training results self.assertAlmostEqual(max(hist.history['lr']), lr) self.assertGreater(max(hist.history['acc']), 0.9) # test top losses obs = learner.top_losses(n=1, val_data=val) self.assertIn(obs[0][0], list(range(val.targets.shape[0]))) learner.view_top_losses(preproc=preproc, n=1, val_data=val) # test weight decay self.assertEqual(len(learner.get_weight_decay()), 1) self.assertEqual(learner.get_weight_decay()[0], None) learner.set_weight_decay(1e-4) self.assertAlmostEqual(learner.get_weight_decay()[0], 1e-4) # test load and save model learner.save_model('/tmp/test_model') learner.load_model('/tmp/test_model') # test validate learner.validate(val_data=val) 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) self.assertIn( p.predict_transductive(val.ids[0:1])[0], preproc.get_classes()) p.predict_transductive(val.ids[0:1]) p.save('/tmp/test_predictor') p = ktrain.load_predictor('/tmp/test_predictor') self.assertIn( p.predict_transductive(val.ids[0:1])[0], preproc.get_classes())