Unverified Commit 6cf77a92 authored by Peter Eastman's avatar Peter Eastman Committed by GitHub
Browse files

Merge pull request #2407 from peastman/tests

Fixes to test cases
parents 8f688953 9d622498
Loading
Loading
Loading
Loading
+6 −16
Original line number Diff line number Diff line
@@ -165,7 +165,6 @@ def test_dag_model():
  tasks, dataset, transformers, metric = get_dataset('classification',
                                                     'GraphConv')

  batch_size = 10
  max_atoms = max([mol.get_num_atoms() for mol in dataset.X])
  transformer = dc.trans.DAGTransformer(max_atoms=max_atoms)
  dataset = transformer.transform(dataset)
@@ -174,11 +173,9 @@ def test_dag_model():
      len(tasks),
      max_atoms=max_atoms,
      mode='classification',
      learning_rate=0.03,
      batch_size=batch_size,
      use_queue=False)
      learning_rate=0.001)

  model.fit(dataset, nb_epoch=40)
  model.fit(dataset, nb_epoch=30)
  scores = model.evaluate(dataset, [metric], transformers)
  assert scores['mean-roc_auc_score'] >= 0.9

@@ -190,20 +187,14 @@ def test_dag_regression_model():
  tf.random.set_seed(1234)
  tasks, dataset, transformers, metric = get_dataset('regression', 'GraphConv')

  batch_size = 10
  max_atoms = max([mol.get_num_atoms() for mol in dataset.X])
  transformer = dc.trans.DAGTransformer(max_atoms=max_atoms)
  dataset = transformer.transform(dataset)

  model = DAGModel(
      len(tasks),
      max_atoms=max_atoms,
      mode='regression',
      learning_rate=0.03,
      batch_size=batch_size,
      use_queue=False)
      len(tasks), max_atoms=max_atoms, mode='regression', learning_rate=0.003)

  model.fit(dataset, nb_epoch=1200)
  model.fit(dataset, nb_epoch=100)
  scores = model.evaluate(dataset, [metric], transformers)
  assert scores['mean_absolute_error'] < 0.15

@@ -250,7 +241,6 @@ def test_dag_regression_uncertainty():
def test_mpnn_model():
  tasks, dataset, transformers, metric = get_dataset('classification', 'Weave')

  batch_size = 10
  model = MPNNModel(
      len(tasks),
      mode='classification',
@@ -259,9 +249,9 @@ def test_mpnn_model():
      n_pair_feat=14,
      T=1,
      M=1,
      batch_size=batch_size)
      learning_rate=0.0005)

  model.fit(dataset, nb_epoch=40)
  model.fit(dataset, nb_epoch=150)
  scores = model.evaluate(dataset, [metric], transformers)
  assert scores['mean-roc_auc_score'] >= 0.9

+2 −5
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ def test_mpnn_regression():

  # initialize models
  n_tasks = len(tasks)
  model = MPNNModel(mode='regression', n_tasks=n_tasks, batch_size=10)
  model = MPNNModel(mode='regression', n_tasks=n_tasks, learning_rate=0.0005)

  # overfit test
  model.fit(dataset, nb_epoch=400)
@@ -61,10 +61,7 @@ def test_mpnn_classification():
  # initialize models
  n_tasks = len(tasks)
  model = MPNNModel(
      mode='classification',
      n_tasks=n_tasks,
      batch_size=10,
      learning_rate=0.001)
      mode='classification', n_tasks=n_tasks, learning_rate=0.0005)

  # overfit test
  model.fit(dataset, nb_epoch=200)
+3 −3
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ class TestPretrainedTorch(unittest.TestCase):
    for idx, dest_var in enumerate(dest_vars):
      source_var = source_vars[idx]
      assignment_map[source_var] = dest_var
      value_map[source_var] = source_var.detach().numpy()
      value_map[source_var] = source_var.detach().cpu().numpy()

    dest_model.load_from_pretrained(
        source_model=source_model,
@@ -66,8 +66,8 @@ class TestPretrainedTorch(unittest.TestCase):
        value_map=value_map)

    for source_var, dest_var in assignment_map.items():
      source_val = source_var.detach().numpy()
      dest_val = dest_var.detach().numpy()
      source_val = source_var.detach().cpu().numpy()
      dest_val = dest_var.detach().cpu().numpy()
      np.testing.assert_array_almost_equal(source_val, dest_val)

  def test_restore_equivalency(self):
+6 −7
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ def test_compute_features_on_infinity_distance():
          "trainable": True,
          "renorm": True
      },
      learning_rage=0.0005)
      learning_rate=0.0005)
  atom_feat, pair_feat, pair_split, atom_split, atom_to_pair = model.compute_features_on_batch(
      X)

@@ -95,7 +95,7 @@ def test_compute_features_on_distance_1():
          "trainable": True,
          "renorm": True
      },
      learning_rage=0.0005)
      learning_rate=0.0005)
  atom_feat, pair_feat, pair_split, atom_split, atom_to_pair = model.compute_features_on_batch(
      X)

@@ -131,10 +131,9 @@ def test_weave_model():
      len(tasks),
      batch_size=batch_size,
      mode='classification',
      final_conv_activation_fn=None,
      dropouts=0,
      learning_rage=0.0003)
  model.fit(dataset, nb_epoch=100)
      learning_rate=0.002)
  model.fit(dataset, nb_epoch=250)
  scores = model.evaluate(dataset, [metric], transformers)
  assert scores['mean-roc_auc_score'] >= 0.9

@@ -178,7 +177,7 @@ def test_weave_regression_model():
#           "trainable": True,
#           "renorm": True
#       },
#       learning_rage=0.0005)
#       learning_rate=0.0005)
#   model.fit(dataset, nb_epoch=200)
#   transformers = []
#   metric = dc.metrics.Metric(
@@ -205,7 +204,7 @@ def test_weave_fit_simple_distance_1():
          "trainable": True,
          "renorm": True
      },
      learning_rage=0.0005)
      learning_rate=0.0005)
  model.fit(dataset, nb_epoch=200)
  transformers = []
  metric = dc.metrics.Metric(
+4 −2
Original line number Diff line number Diff line
@@ -77,12 +77,14 @@ class TestA2C(unittest.TestCase):
    a2c.fit(100000)

    # It should have learned that the expected value is very close to zero, and that the best
    # action is to walk away.
    # action is to walk away.  (To keep the test fast, we allow that to be either of the two
    # top actions).

    action_prob, value = a2c.predict([[0]])
    assert -0.5 < value[0] < 0.5
    assert action_prob.argmax() == 37
    assert a2c.select_action([[0]], deterministic=True) == 37
    assert 37 in np.argsort(action_prob.flatten())[-2:]
    assert a2c.select_action([[0]], deterministic=True) == action_prob.argmax()

    # Verify that we can create a new A2C object, reload the parameters from the first one, and
    # get the same result.
Loading