Commit 5337e9dc authored by Bharath Ramsundar's avatar Bharath Ramsundar
Browse files

First commit of completed model. Will rerun on GPU before final commit.

parent 2415e4eb
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -342,10 +342,22 @@ class FeaturizedSamples(object):
    """Returns size of internal dataset."""
    return self.num_samples

  # TODO(rbharath): Might this be inefficient?
  def itersamples(self):
    """Iterates over samples in this object."""
    compound_ids = set(list(self.compounds_df["mol_id"]))
    for df_file in self.dataset_files:
      df = load_from_disk(df_file)
      visible_inds = []
      for ind, row in df.iterrows():
        if row["mol_id"] in compound_ids:
          visible_inds.append(ind)
      for visible_ind in visible_inds:
        yield df.loc[visible_ind]

  # TODO(rbharath): Might this be inefficient?
  def iterdataframes(self):
    """
    Provides an iterator over samples.
    Provides a bulk iterator over data.

    Each sample from the iterator is a dataframe of samples.
    """
+9 −5
Original line number Diff line number Diff line
@@ -22,12 +22,14 @@ class Model(object):
  registered_model_classes = {}
  non_sklearn_models = ["SingleTaskDNN", "MultiTaskDNN", "DockingDNN"]
  def __init__(self, task_types, model_params, model_instance=None,
               initialize_raw_model=True, verbose=True):
               initialize_raw_model=True, verbosity="low"):
    self.model_class = model_instance.__class__
    self.task_types = task_types
    self.model_params = model_params
    self.raw_model = None
    self.verbose = verbose 
    assert verbosity in [None, "low", "high"]
    self.low_verbosity = (verbosity == "low")
    self.high_verbosity = (verbosity == "high")

  def fit_on_batch(self, X, y, w):
    """
@@ -133,14 +135,16 @@ class Model(object):
    #                     memory overflows.
    batch_size = self.model_params["batch_size"]
    for epoch in range(self.model_params["nb_epoch"]):
      log("Starting epoch %s" % str(epoch+1), self.verbose)
      log("Starting epoch %s" % str(epoch+1), self.low_verbosity)
      for i, (X, y, w, _) in enumerate(dataset.itershards()):
        log("Training on shard-%s/epoch-%s" % (str(i+1), str(epoch+1)), self.verbose)
        log("Training on shard-%s/epoch-%s" % (str(i+1), str(epoch+1)),
        self.high_verbosity)
        nb_sample = np.shape(X)[0]
        interval_points = np.linspace(
            0, nb_sample, np.ceil(float(nb_sample)/batch_size)+1, dtype=int)
        for j in range(len(interval_points)-1):
          log("Training on batch-%s/shard-%s/epoch-%s" % (str(j+1), str(i+1), str(epoch+1)), self.verbose)
          log("Training on batch-%s/shard-%s/epoch-%s" %
              (str(j+1), str(i+1), str(epoch+1)), self.high_verbosity)
          indices = range(interval_points[j], interval_points[j+1])
          X_batch = X[indices, :]
          y_batch = y[indices]
+0 −4
Original line number Diff line number Diff line
@@ -150,10 +150,6 @@ class MultiTaskDNN(KerasModel):
        # output the most likely class.
        y_pred_task = np.squeeze(np.argmax(y_pred_dict[taskname], axis=1))
      else:
        print("taskname")
        print(taskname)
        print("y_pred_dict.keys()")
        print(y_pred_dict.keys())
        y_pred_task = np.squeeze(y_pred_dict[taskname])
      y_pred[:, ind] = y_pred_task
    y_pred = np.squeeze(y_pred)
+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ class Dataset(object):

      metadata_rows = []
      # TODO(rbharath): Still a bit of information leakage.
      for df_file, df in zip(samples.dataset_files, samples.itersamples()):
      for df_file, df in zip(samples.dataset_files, samples.iterdataframes()):
        retval = write_dataset_single_partial((df_file, df))
        if retval is not None:
          metadata_rows.append(retval)

docs/solubility.html

0 → 100644
+1956 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading