Commit 805106dd authored by Bharath Ramsundar's avatar Bharath Ramsundar
Browse files

More bugfixes

parent 51f7ead6
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ class Model(object):

    batch_size = self.model_params["batch_size"]
    # Have to include ys/ws since we might pad batches
    ys, w_preds, y_preds = [], [], []
    y_preds = []
    print("predict()")
    print("len(dataset)")
    print(len(dataset))
@@ -160,13 +160,13 @@ class Model(object):
      y_pred_batch = np.reshape(self.predict_on_batch(X_batch), y_batch.shape)
      y_pred_batch = undo_transforms(y_pred_batch, transformers)
      y_preds.append(y_pred_batch)
      ys.append(y_batch)
      w_preds.append(w_batch)
      #ys.append(y_batch)
      #w_preds.append(w_batch)
      print("X_batch.shape, y_batch.shape, y_pred_batch.shape")
      print(X_batch.shape, y_batch.shape, y_pred_batch.shape)
    y = np.vstack(ys)
    #y = np.vstack(ys)
    y_pred = np.vstack(y_preds)
    w_pred = np.vstack(w_preds)
    #w_pred = np.vstack(w_preds)
  
    #X = X[w.flatten() != 0, :]
    #print("Model.predict()")
@@ -178,7 +178,11 @@ class Model(object):
    #  y_task = to_one_hot(y_task)
    #  y_pred_task = y_pred_task[w_task.flatten() != 0][:, np.newaxis]

    return y, y_pred, w_pred
    # The iterbatches does padding with zero-weight examples on the last batch.
    # Remove padded examples.
    y_pred = y_pred[:len(dataset)]

    return y_pred

    #task_names = dataset.get_task_names()
    #pred_task_names = ["%s_pred" % task_name for task_name in task_names]
+4 −4
Original line number Diff line number Diff line
@@ -76,17 +76,17 @@ class TestAPI(unittest.TestCase):
    model.save()

    # Eval model on train
    evaluator = Evaluator(model, train_dataset, transformers, verbose=True)
    evaluator = Evaluator(model, train_dataset, transformers, verbosity=True)
    with tempfile.NamedTemporaryFile() as train_csv_out:
      with tempfile.NamedTemporaryFile() as train_stats_out:
        _, _, _ = evaluator.compute_model_performance(
        _ = evaluator.compute_model_performance(
            metrics, train_csv_out, train_stats_out)

    # Eval model on test
    evaluator = Evaluator(model, test_dataset, transformers, verbose=True)
    evaluator = Evaluator(model, test_dataset, transformers, verbosity=True)
    with tempfile.NamedTemporaryFile() as test_csv_out:
      with tempfile.NamedTemporaryFile() as test_stats_out:
        _, _, _ = evaluator.compute_model_performance(
        _ = evaluator.compute_model_performance(
            metrics, test_csv_out, test_stats_out)

  def _featurize_train_test_split(self, splittype, compound_featurizers, 
+4 −4
Original line number Diff line number Diff line
@@ -66,9 +66,9 @@ class Evaluator(object):
    Computes statistics of model on test data and saves results to csv.
    """
    #pred_y_df = self.model.predict(self.dataset, self.transformers)
    #y = self.dataset.get_labels()
    #w = self.dataset.get_weights()
    y, y_pred, w_pred = self.model.predict(self.dataset, self.transformers)
    y = self.dataset.get_labels()
    w = self.dataset.get_weights()
    y_pred = self.model.predict(self.dataset, self.transformers)
    multitask_scores = {}

    colnames = ["task_name"] + [metric.name for metric in metrics]
@@ -111,7 +111,7 @@ class Evaluator(object):

    # Compute multitask metrics
    for metric in metrics:
      multitask_scores[metric.name] = metric.compute_metric(y, y_pred, w_pred)
      multitask_scores[metric.name] = metric.compute_metric(y, y_pred, w)
    print("multitask_scores")
    print(multitask_scores)