Unverified Commit 7342aa8c authored by Karl Leswing's avatar Karl Leswing Committed by GitHub
Browse files

Merge pull request #1167 from mlgill/issue1138_mg_GraphConvTensorGraph_to_GraphConvModel

Issue1138 mg graph conv tensor graph to graph conv model
parents f615e6d9 b97e1f72
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ from deepchem.models.tensorgraph.IRV import TensorflowMultiTaskIRVClassifier
from deepchem.models.tensorgraph.robust_multitask import RobustMultitaskClassifier
from deepchem.models.tensorgraph.robust_multitask import RobustMultitaskRegressor
from deepchem.models.tensorgraph.progressive_multitask import ProgressiveMultitaskRegressor
from deepchem.models.tensorgraph.models.graph_models import WeaveTensorGraph, DTNNTensorGraph, DAGTensorGraph, GraphConvTensorGraph, MPNNTensorGraph
from deepchem.models.tensorgraph.models.graph_models import WeaveTensorGraph, DTNNTensorGraph, DAGTensorGraph, GraphConvModel, MPNNTensorGraph
from deepchem.models.tensorgraph.models.symmetry_function_regression import BPSymmetryFunctionRegression, ANIRegression

from deepchem.models.tensorgraph.models.seqtoseq import SeqToSeq
@@ -25,3 +25,7 @@ from deepchem.models.tensorgraph.models.gan import GAN, WGAN
from deepchem.models.tensorgraph.models.text_cnn import TextCNNTensorGraph
from deepchem.models.tensorgraph.sequential import Sequential
from deepchem.models.tensorgraph.models.sequence_dnn import SequenceDNN

#################### Compatibility imports for renamed TensorGraph models. Remove below with DeepChem 3.0. ####################

from deepchem.models.tensorgraph.models.graph_models import GraphConvTensorGraph
 No newline at end of file
+19 −3
Original line number Diff line number Diff line
@@ -664,7 +664,7 @@ class PetroskiSuchTensorGraph(TensorGraph):
        per_task_metrics=per_task_metrics)


class GraphConvTensorGraph(TensorGraph):
class GraphConvModel(TensorGraph):

  def __init__(self,
               n_tasks,
@@ -700,7 +700,7 @@ class GraphConvTensorGraph(TensorGraph):
    self.graph_conv_layers = graph_conv_layers
    kwargs['use_queue'] = False
    self.number_atom_features = number_atom_features
    super(GraphConvTensorGraph, self).__init__(**kwargs)
    super(GraphConvModel, self).__init__(**kwargs)
    self.build_graph()

  def build_graph(self):
@@ -824,7 +824,7 @@ class GraphConvTensorGraph(TensorGraph):
          result = undo_transforms(feed_results[0], transformers)
          feed_results = [result]
        for ind, result in enumerate(feed_results):
          # GraphConvTensorGraph constantly outputs batch_size number of
          # GraphConvModel constantly outputs batch_size number of
          # results, only valid samples should be appended to final results
          results[ind].append(result[:n_samples])

@@ -1143,3 +1143,19 @@ class MPNNTensorGraph(TensorGraph):

  def predict_on_generator(self, generator, transformers=[]):
    return self.predict_proba_on_generator(generator, transformers)


#################### Deprecation warnings for renamed TensorGraph models ####################

import warnings


class GraphConvTensorGraph(GraphConvModel):

  warnings.warn(
      "GraphConvTensorGraph is deprecated and has been renamed to GraphConvModel and will be removed in DeepChem 3.0.",
      FutureWarning)

  def __init__(self, *args, **kwargs):

    super(GraphConvTensorGraph, self).__init__(*args, **kwargs)
+6 −9
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import numpy as np

import deepchem
from deepchem.data import NumpyDataset
from deepchem.models import GraphConvTensorGraph
from deepchem.models import GraphConvModel
from deepchem.models import TensorGraph
from deepchem.molnet.load_function.delaney_datasets import load_delaney
from deepchem.models.tensorgraph.layers import ReduceSum, L2Loss
@@ -43,7 +43,7 @@ class TestGraphModels(unittest.TestCase):
        'classification', 'GraphConv')

    batch_size = 50
    model = GraphConvTensorGraph(
    model = GraphConvModel(
        len(tasks), batch_size=batch_size, mode='classification')

    model.fit(dataset, nb_epoch=1)
@@ -58,8 +58,7 @@ class TestGraphModels(unittest.TestCase):
        'regression', 'GraphConv')

    batch_size = 50
    model = GraphConvTensorGraph(
        len(tasks), batch_size=batch_size, mode='regression')
    model = GraphConvModel(len(tasks), batch_size=batch_size, mode='regression')

    model.fit(dataset, nb_epoch=1)
    scores = model.evaluate(dataset, [metric], transformers)
@@ -73,8 +72,7 @@ class TestGraphModels(unittest.TestCase):
        'regression', 'GraphConv', num_tasks=1)

    batch_size = 50
    model = GraphConvTensorGraph(
        len(tasks), batch_size=batch_size, mode='regression')
    model = GraphConvModel(len(tasks), batch_size=batch_size, mode='regression')

    model.fit(dataset, nb_epoch=1)

@@ -102,7 +100,7 @@ class TestGraphModels(unittest.TestCase):
    X = featurizer.featurize(dataset.X)
    dataset = deepchem.data.NumpyDataset(X, np.array(y))
    batch_size = 50
    model = GraphConvTensorGraph(
    model = GraphConvModel(
        len(tasks),
        number_atom_features=featurizer.feature_length(),
        batch_size=batch_size,
@@ -121,8 +119,7 @@ class TestGraphModels(unittest.TestCase):
        'regression', 'GraphConv', num_tasks=1)

    batch_size = 50
    model = GraphConvTensorGraph(
        len(tasks), batch_size=batch_size, mode='regression')
    model = GraphConvModel(len(tasks), batch_size=batch_size, mode='regression')

    model.fit(dataset, nb_epoch=1)
    model.save()
+2 −2
Original line number Diff line number Diff line
@@ -191,7 +191,7 @@ def benchmark_classification(train_dataset,
    n_filters = hyper_parameters['n_filters']
    n_fully_connected_nodes = hyper_parameters['n_fully_connected_nodes']

    model = deepchem.models.GraphConvTensorGraph(
    model = deepchem.models.GraphConvModel(
        len(tasks),
        graph_conv_layers=[n_filters] * 2,
        dense_layer_size=n_fully_connected_nodes,
@@ -507,7 +507,7 @@ def benchmark_regression(train_dataset,
    n_filters = hyper_parameters['n_filters']
    n_fully_connected_nodes = hyper_parameters['n_fully_connected_nodes']

    model = deepchem.models.GraphConvTensorGraph(
    model = deepchem.models.GraphConvModel(
        len(tasks),
        graph_conv_layers=[n_filters] * 2,
        dense_layer_size=n_fully_connected_nodes,
+2 −3
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ from sklearn import svm
import tensorflow as tf
tf.set_random_seed(123)
import deepchem as dc
from deepchem.models.tensorgraph.models.graph_models import GraphConvTensorGraph
from deepchem.models.tensorgraph.models.graph_models import GraphConvModel

BATCH_SIZE = 128
# Set to higher values to get better numbers
@@ -74,8 +74,7 @@ def experiment(dataset_file, method='GraphConv', split='scaffold'):

  model = None
  if method == 'GraphConv':
    model = GraphConvTensorGraph(
        len(tasks), batch_size=BATCH_SIZE, mode="regression")
    model = GraphConvModel(len(tasks), batch_size=BATCH_SIZE, mode="regression")
  elif method == 'RF':

    def model_builder_rf(model_dir):
Loading