Commit 1b97292e authored by Bharath Ramsundar's avatar Bharath Ramsundar
Browse files

Low data updates

parent 4d579034
Loading
Loading
Loading
Loading
+21 −20
Original line number Diff line number Diff line
@@ -5,10 +5,11 @@ from __future__ import print_function
from __future__ import division
from __future__ import unicode_literals

import tempfile
import numpy as np
import deepchem as dc
np.random.seed(123)
import tensorflow as tf
tf.set_random_seed(123)
import deepchem as dc
from datasets import load_muv_convmol

# Number of folds for split 
@@ -16,8 +17,8 @@ K = 4
# Depth of attention module
max_depth = 3
# number positive/negative ligands
n_pos = 10
n_neg = 10
n_pos = 1
n_neg = 1
# Set batch sizes for network
test_batch_size = 128
support_batch_size = n_pos + n_neg
@@ -32,8 +33,7 @@ n_feat = 75
muv_tasks, dataset, transformers = load_muv_convmol()

# Define metric
metric = dc.metrics.Metric(
    dc.metrics.roc_auc_score, mode="classification")
metric = dc.metrics.Metric(dc.metrics.roc_auc_score, mode="classification")

task_splitter = dc.splits.TaskSplitter()
fold_datasets = task_splitter.k_fold_split(dataset, K)
@@ -46,25 +46,26 @@ test_dataset = fold_datasets[-1]
support_model = dc.nn.SequentialSupportGraph(n_feat)

# Add layers
support_model.add(dc.nn.GraphConv(64, activation='relu'))
support_model.add(dc.nn.GraphConv(64, n_feat, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.GraphConv(128, activation='relu'))
support_model.add(dc.nn.GraphConv(128, 64, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.GraphConv(64, activation='relu'))
support_model.add(dc.nn.GraphConv(64, 128, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.Dense(128, activation='tanh'))
support_model.add(dc.nn.Dense(128, 64, activation='tanh'))

support_model.add_test(dc.nn.GraphGather(test_batch_size, activation='tanh'))
support_model.add_support(dc.nn.GraphGather(support_batch_size, activation='tanh'))

# Apply an attention lstm layer
support_model.join(dc.nn.AttnLSTMEmbedding(
    test_batch_size, support_batch_size, max_depth))
    test_batch_size, support_batch_size, 128, max_depth))

with tf.Session() as sess:
model = dc.models.SupportGraphClassifier(
    sess, support_model, test_batch_size=test_batch_size,
    support_batch_size=support_batch_size, learning_rate=learning_rate)
  support_model,
  test_batch_size=test_batch_size,
  support_batch_size=support_batch_size,
  learning_rate=learning_rate)

model.fit(train_dataset, nb_epochs=nb_epochs, 
          n_episodes_per_epoch=n_train_trials,
+32 −33
Original line number Diff line number Diff line
@@ -40,32 +40,31 @@ task_scores = {task: [] for task in range(len(test_dataset.get_task_names()))}

for trial_num, (task, support) in enumerate(support_generator):
  print("Starting trial %d" % trial_num)
  # Train model on support
  g = tf.Graph()
  sess = tf.Session(graph=g)

  # Do setup required for tf/keras models
  # Number of features on conv-mols
  n_feat = 75
  # Batch size of models
  batch_size = 50

  with g.as_default():
  graph_model = dc.nn.SequentialGraph(n_feat)
    graph_model.add(dc.nn.GraphConv(64, activation='relu'))
  graph_model.add(dc.nn.GraphConv(64, n_feat, activation='relu'))
  graph_model.add(dc.nn.GraphPool())
    graph_model.add(dc.nn.GraphConv(128, activation='relu'))
  graph_model.add(dc.nn.GraphConv(128, 64, activation='relu'))
  graph_model.add(dc.nn.GraphPool())
    graph_model.add(dc.nn.GraphConv(64, activation='relu'))
  graph_model.add(dc.nn.GraphConv(64, 128, activation='relu'))
  graph_model.add(dc.nn.GraphPool())
    graph_model.add(dc.nn.Dense(128, activation='tanh'))
  graph_model.add(dc.nn.Dense(128, 64, activation='tanh'))
  graph_model.add(dc.nn.GraphGather(batch_size, activation="tanh"))

    with tf.Session() as sess:
  model = dc.models.MultitaskGraphClassifier(
        sess, graph_model, 1, batch_size=batch_size,
        learning_rate=1e-3, learning_rate_decay_time=1000,
        optimizer_type="adam", beta1=.9, beta2=.999)
    graph_model,
    1,
    n_feat,
    batch_size=batch_size,
    learning_rate=1e-3,
    learning_rate_decay_time=1000,
    optimizer_type="adam",
    beta1=.9,
    beta2=.999)

  # Fit trained model
  model.fit(support, nb_epoch=10)
+20 −18
Original line number Diff line number Diff line
@@ -5,10 +5,11 @@ from __future__ import print_function
from __future__ import division
from __future__ import unicode_literals

import tempfile
import numpy as np
import deepchem as dc
np.random.seed(123)
import tensorflow as tf
tf.set_random_seed(123)
import deepchem as dc
from datasets import load_muv_convmol

# Number of folds for split 
@@ -16,8 +17,8 @@ K = 4
# Depth of attention module
max_depth = 3
# num positive/negative ligands
n_pos = 10
n_neg = 10
n_pos = 1
n_neg = 5
# Set batch sizes for network
test_batch_size = 128
support_batch_size = n_pos + n_neg
@@ -45,25 +46,26 @@ test_dataset = fold_datasets[-1]
support_model = dc.nn.SequentialSupportGraph(n_feat)

# Add layers
support_model.add(dc.nn.GraphConv(64, activation='relu'))
support_model.add(dc.nn.GraphConv(64, n_feat, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.GraphConv(128, activation='relu'))
support_model.add(dc.nn.GraphConv(128, 64, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.GraphConv(64, activation='relu'))
support_model.add(dc.nn.GraphConv(64, 128, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.Dense(128, activation='tanh'))
support_model.add(dc.nn.Dense(128, 64, activation='tanh'))

support_model.add_test(dc.nn.GraphGather(test_batch_size, activation='tanh'))
support_model.add_support(dc.nn.GraphGather(support_batch_size, activation='tanh'))

# Apply a residual lstm layer
support_model.join(dc.nn.ResiLSTMEmbedding(
    test_batch_size, support_batch_size, max_depth))
    test_batch_size, support_batch_size, 128, max_depth))

with tf.Session() as sess:
model = dc.models.SupportGraphClassifier(
    sess, support_model, test_batch_size=test_batch_size,
    support_batch_size=support_batch_size, learning_rate=learning_rate)
  support_model,
  test_batch_size=test_batch_size,
  support_batch_size=support_batch_size,
  learning_rate=learning_rate)

model.fit(train_dataset, nb_epochs=nb_epochs,
          n_episodes_per_epoch=n_train_trials,
+14 −13
Original line number Diff line number Diff line
@@ -43,21 +43,22 @@ test_dataset = fold_datasets[-1]
support_model = dc.nn.SequentialSupportGraph(n_feat)

# Add layers
support_model.add(dc.nn.GraphConv(64, activation='relu'))
support_model.add(dc.nn.GraphConv(64, n_feat, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.GraphConv(128, activation='relu'))
support_model.add(dc.nn.GraphConv(128, 64, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.GraphConv(64, activation='relu'))
support_model.add(dc.nn.GraphConv(64, 128, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.Dense(128, activation='tanh'))
support_model.add(dc.nn.Dense(128, 64, activation='tanh'))

support_model.add_test(dc.nn.GraphGather(test_batch_size, activation='tanh'))
support_model.add_support(dc.nn.GraphGather(support_batch_size, activation='tanh'))

with tf.Session() as sess:
model = dc.models.SupportGraphClassifier(
    sess, support_model, test_batch_size=test_batch_size,
    support_batch_size=support_batch_size, learning_rate=learning_rate)
  support_model,
  test_batch_size=test_batch_size,
  support_batch_size=support_batch_size,
  learning_rate=learning_rate)

model.fit(train_dataset, nb_epochs=nb_epochs,
          n_episodes_per_epoch=n_train_trials,
+20 −18
Original line number Diff line number Diff line
@@ -5,10 +5,11 @@ from __future__ import print_function
from __future__ import division
from __future__ import unicode_literals

import tempfile
import numpy as np
import deepchem as dc
np.random.seed(123)
import tensorflow as tf
tf.set_random_seed(123)
import deepchem as dc
from datasets import load_sider_convmol

# Number of folds for split 
@@ -16,8 +17,8 @@ K = 4
# Depth of attention module
max_depth = 3
# number positive/negative ligands
n_pos = 10
n_neg = 10
n_pos = 1
n_neg = 1
# Set batch sizes for network
test_batch_size = 128
support_batch_size = n_pos + n_neg
@@ -45,25 +46,26 @@ test_dataset = fold_datasets[-1]
support_model = dc.nn.SequentialSupportGraph(n_feat)

# Add layers
support_model.add(dc.nn.GraphConv(64, activation='relu'))
support_model.add(dc.nn.GraphConv(64, n_feat, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.GraphConv(128, activation='relu'))
support_model.add(dc.nn.GraphConv(128, 64, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.GraphConv(64, activation='relu'))
support_model.add(dc.nn.GraphConv(64, 128, activation='relu'))
support_model.add(dc.nn.GraphPool())
support_model.add(dc.nn.Dense(128, activation='tanh'))
support_model.add(dc.nn.Dense(128, 64, activation='tanh'))

support_model.add_test(dc.nn.GraphGather(test_batch_size, activation='tanh'))
support_model.add_support(dc.nn.GraphGather(support_batch_size, activation='tanh'))

# Apply an attention lstm layer
support_model.join(dc.nn.AttnLSTMEmbedding(
    test_batch_size, support_batch_size, max_depth))
    test_batch_size, support_batch_size, 128, max_depth))

with tf.Session() as sess:
model = dc.models.SupportGraphClassifier(
    sess, support_model, test_batch_size=test_batch_size,
    support_batch_size=support_batch_size, learning_rate=learning_rate)
  support_model,
  test_batch_size=test_batch_size,
  support_batch_size=support_batch_size,
  learning_rate=learning_rate)

model.fit(train_dataset, nb_epochs=nb_epochs, 
          n_episodes_per_epoch=n_train_trials,
Loading