Commit 0ad58e3d authored by Bharath Ramsundar's avatar Bharath Ramsundar
Browse files

Progressive debugging

parent 3389acea
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -181,6 +181,22 @@ class Metric(object):
      metric_value = self.compute_singletask_metric(
          y_task, y_pred_task, w_task)
      computed_metrics.append(metric_value)
    ##################################################################### DEBUG
   # print("n_tasks")
   # print(n_tasks)
   # print("len(computed_metrics)")
   # print(len(computed_metrics))
   # print("computed_metrics")
   # print(computed_metrics)
   # print("len(computed_metrics)")
   # print(len(computed_metrics))
   # print("computed_metrics")
   # print(computed_metrics)
   # print("len(computed_metrics)")
   # print(len(computed_metrics))
   # print("y_true.shape, y_pred.shape")
   # print(y_true.shape, y_pred.shape)
    ##################################################################### DEBUG
    log("computed_metrics: %s" % str(computed_metrics), self.verbosity)
    if n_tasks == 1:
      computed_metrics = computed_metrics[0]
+8 −0
Original line number Diff line number Diff line
@@ -177,6 +177,14 @@ class Model(object):
    # The iterbatches does padding with zero-weight examples on the last batch.
    # Remove padded examples.
    n_samples = len(dataset)
    ############################################################ DEBUG
    #print("y_pred[:10]")
    #print(y_pred[:10])
    #print("dataset.y[:10]")
    #print(dataset.y[:10])
    #print("y_pred.shape")
    #print(y_pred.shape)
    ############################################################ DEBUG
    y_pred = np.reshape(y_pred, (n_samples, n_tasks))
    # Special case to handle singletasks.
    if n_tasks == 1:
+2 −2
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@ def dropout(tensor, dropout_prob, training=True, training_only=True):
  return tensor


def fully_connected_layer(tensor, size, weight_init=None, bias_init=None,
def fully_connected_layer(tensor, size=None, weight_init=None, bias_init=None,
                          name=None):
  """Fully connected layer.

@@ -129,7 +129,7 @@ def fully_connected_layer(tensor, size, weight_init=None, bias_init=None,
  tensor: tf.Tensor
    Input tensor.
  size: int
    Number of nodes in this layer.
    Number of output nodes for this layer.
  weight_init: float
    Weight initializer.
  bias_init: float
+641 −287

File changed.

Preview size limit exceeded, changes collapsed.

+16 −6
Original line number Diff line number Diff line
@@ -757,22 +757,32 @@ class TestOverfit(test_util.TensorFlowTestCase):
    np.random.seed(123)
    ids = np.arange(n_samples)
    X = np.random.rand(n_samples, n_features)
    y = np.zeros((n_samples, n_tasks))
    y = np.ones((n_samples, n_tasks))
    w = np.ones((n_samples, n_tasks))
  
    dataset = dc.data.NumpyDataset(X, y, w, ids)

    regression_metric = dc.metrics.Metric(
        dc.metrics.mean_squared_error, task_averager=np.mean)
    metric = dc.metrics.Metric(dc.metrics.rms_score, task_averager=np.mean)
    model = dc.models.ProgressiveMultitaskRegressor(
        n_tasks, n_features, layer_sizes=[50], bypass_layer_sizes=[10],
        dropouts=[0.], learning_rate=0.003, weight_init_stddevs=[.1], seed=123,
        alpha_init_stddevs=[.02], batch_size=n_samples, verbosity="high")

    # Fit trained model
    model.fit(dataset, nb_epoch=25)
    model.fit(dataset, nb_epoch=20)
    model.save()

    # Eval model on train
    scores = model.evaluate(dataset, [regression_metric])
    assert scores[regression_metric.name] < .2
    scores = model.evaluate(dataset, [metric])
    print("scores")
    print(scores)
    y_pred = model.predict(dataset)
    print("y")
    print(y)
    print("y_pred")
    print(y_pred)
    print("w")
    print(w)
    print("metric.compute_metric(y, y_pred, w)")
    print(metric.compute_metric(y, y_pred, w))
    assert scores[metric.name] < .2