def test_weave_regression_model(self): tasks, dataset, transformers, metric = self.get_dataset( 'regression', 'Weave') model = WeaveModel(len(tasks), mode='regression') model.fit(dataset, nb_epoch=80) scores = model.evaluate(dataset, [metric], transformers) assert all(s < 0.1 for s in scores['mean_absolute_error']) model.save() model = TensorGraph.load_from_dir(model.model_dir) scores2 = model.evaluate(dataset, [metric], transformers) assert np.allclose(scores['mean_absolute_error'], scores2['mean_absolute_error'])
def test_weave_model(self): tasks, dataset, transformers, metric = self.get_dataset( 'classification', 'Weave') model = WeaveModel(len(tasks), mode='classification') model.fit(dataset, nb_epoch=50) scores = model.evaluate(dataset, [metric], transformers) assert scores['mean-roc_auc_score'] >= 0.9 model.save() model = TensorGraph.load_from_dir(model.model_dir) scores2 = model.evaluate(dataset, [metric], transformers) assert np.allclose(scores['mean-roc_auc_score'], scores2['mean-roc_auc_score'])
def test_weave_fit_simple_distance_1(): featurizer = dc.feat.WeaveFeaturizer(max_pair_distance=1) X = featurizer(["C", "CCC"]) y = np.array([0, 1.]) dataset = dc.data.NumpyDataset(X, y) batch_size = 20 model = WeaveModel(1, batch_size=batch_size, mode='classification', fully_connected_layer_sizes=[2000, 1000], batch_normalize=True, batch_normalize_kwargs={ "fused": False, "trainable": True, "renorm": True }, learning_rage=0.0005) model.fit(dataset, nb_epoch=200) transformers = [] metric = dc.metrics.Metric(dc.metrics.roc_auc_score, np.mean, mode="classification") scores = model.evaluate(dataset, [metric], transformers) assert scores['mean-roc_auc_score'] >= 0.9
def test_weave_regression_model(self): tasks, dataset, transformers, metric = self.get_dataset( 'regression', 'Weave') model = WeaveModel(len(tasks), mode='regression') model.fit(dataset, nb_epoch=80) scores = model.evaluate(dataset, [metric], transformers) assert all(s < 0.1 for s in scores['mean_absolute_error'])
def test_weave_model(self): tasks, dataset, transformers, metric = self.get_dataset( 'classification', 'Weave') model = WeaveModel(len(tasks), mode='classification') model.fit(dataset, nb_epoch=50) scores = model.evaluate(dataset, [metric], transformers) assert scores['mean-roc_auc_score'] >= 0.9
def test_weave_model(): tasks, dataset, transformers, metric = get_dataset( 'classification', 'Weave', data_points=10) batch_size = 10 model = WeaveModel( len(tasks), batch_size=batch_size, mode='classification', dropouts=0, learning_rate=0.0001) model.fit(dataset, nb_epoch=250) scores = model.evaluate(dataset, [metric], transformers) assert scores['mean-roc_auc_score'] >= 0.9
def test_weave_regression_model(): import numpy as np import tensorflow as tf tf.random.set_seed(123) np.random.seed(123) tasks, dataset, transformers, metric = get_dataset('regression', 'Weave') batch_size = 10 model = WeaveModel(len(tasks), batch_size=batch_size, mode='regression', batch_normalize=False, fully_connected_layer_sizes=[], dropouts=0, learning_rate=0.0005) model.fit(dataset, nb_epoch=200) scores = model.evaluate(dataset, [metric], transformers) assert scores['mean_absolute_error'] < 0.1
def test_weave_model(): tasks, dataset, transformers, metric = get_dataset('classification', 'Weave') batch_size = 20 model = WeaveModel(len(tasks), batch_size=batch_size, mode='classification', fully_connected_layer_sizes=[2000, 1000], batch_normalize=True, batch_normalize_kwargs={ "fused": False, "trainable": True, "renorm": True }, learning_rage=0.0005) model.fit(dataset, nb_epoch=200) scores = model.evaluate(dataset, [metric], transformers) assert scores['mean-roc_auc_score'] >= 0.9
n_hidden = 10 batch_size = 64 n_graph_feat = 10 nb_epoch = 10 model = WeaveModel( n_tasks=n_tasks, n_atom_feat=n_atom_feat, n_pair_feat=n_pair_feat, n_hidden=n_hidden, n_graph_feat=n_graph_feat, mode="regression", batch_size=batch_size, model_dir= "/home/rod/Dropbox/Quimica/Analysis/ANalisis/Borradores/WeaveModel/" ) #To prevent overfitting # Fit trained model print("Fitting model") model.fit(train_dataset, nb_epoch=nb_epoch) model.save() print("Evaluating model") train_scores = model.evaluate(train_dataset, [metric], transformers) valid_scores = model.evaluate(valid_dataset, [metric], transformers) print("Train scores") print(train_scores) print("Validation scores") print(valid_scores) #save_dataset_to_disk("./", train_dataset, valid_dataset, test_dataset, transformers)