Unverified Commit 43814216 authored by Bharath Ramsundar's avatar Bharath Ramsundar Committed by GitHub
Browse files

Merge pull request #1260 from peastman/reshape

NumpyDataset does not reshape its arrays
parents 4499cd5a 25bedd0f
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -308,13 +308,8 @@ class NumpyDataset(Dataset):

  def __init__(self, X, y=None, w=None, ids=None, n_tasks=1):
    n_samples = len(X)
    # The -1 indicates that y will be reshaped to have length -1
    if n_samples > 0:
      if y is not None:
        y = np.reshape(y, (n_samples, -1))
        if w is not None:
          w = np.reshape(w, (n_samples, -1))
      else:
      if y is None:
        # Set labels to be zero, with zero weights
        y = np.zeros((n_samples, n_tasks))
        w = np.zeros_like(y)
@@ -322,6 +317,12 @@ class NumpyDataset(Dataset):
      ids = np.arange(n_samples)
    if w is None:
      w = np.ones_like(y)
    if not isinstance(X, np.ndarray):
      X = np.array(X)
    if not isinstance(y, np.ndarray):
      y = np.array(y)
    if not isinstance(w, np.ndarray):
      w = np.array(w)
    self._X = X
    self._y = y
    self._w = w
+10 −6
Original line number Diff line number Diff line
@@ -85,10 +85,10 @@ def get_task_dataset_minus_support(dataset, support, task):
  # Get task specific entries
  w_task = w[:, task]
  X_task = X[w_task != 0]
  y_task = y[w_task != 0, task]
  y_task = np.expand_dims(y[w_task != 0, task], 1)
  ids_task = ids[w_task != 0]
  # Now just get weights for this task
  w_task = w[w_task != 0, task]
  w_task = np.expand_dims(w[w_task != 0, task], 1)

  return NumpyDataset(X_task, y_task, w_task, ids_task)

@@ -99,10 +99,10 @@ def get_task_dataset(dataset, task):
  # Get task specific entries
  w_task = w[:, task]
  X_task = X[w_task != 0]
  y_task = y[w_task != 0, task]
  y_task = np.expand_dims(y[w_task != 0, task], 1)
  ids_task = ids[w_task != 0]
  # Now just get weights for this task
  w_task = w[w_task != 0, task]
  w_task = np.expand_dims(w[w_task != 0, task], 1)

  return NumpyDataset(X_task, y_task, w_task, ids_task)

@@ -234,8 +234,12 @@ def get_task_support(dataset, n_episodes, n_pos, n_neg, task, log_every_n=50):
      X = np.vstack([dataset.X[pos_inds], dataset.X[neg_inds]])
    else:
      X = np.concatenate([dataset.X[pos_inds], dataset.X[neg_inds]])
    y = np.concatenate([dataset.y[pos_inds, task], dataset.y[neg_inds, task]])
    w = np.concatenate([dataset.w[pos_inds, task], dataset.w[neg_inds, task]])
    y = np.expand_dims(
        np.concatenate([dataset.y[pos_inds, task], dataset.y[neg_inds, task]]),
        1)
    w = np.expand_dims(
        np.concatenate([dataset.w[pos_inds, task], dataset.w[neg_inds, task]]),
        1)
    ids = np.concatenate([dataset.ids[pos_inds], dataset.ids[neg_inds]])
    supports.append(NumpyDataset(X, y, w, ids))
  return supports
+5 −4
Original line number Diff line number Diff line
@@ -223,7 +223,8 @@ class ANIRegression(TensorGraph):
    Z[:A.shape[0], :A.shape[1]] = A
    X = Z
    dd = dc.data.NumpyDataset(
        np.array(X).reshape((1, self.max_atoms, 4)), np.array(0), np.array(1))
        np.array(X).reshape((1, self.max_atoms, 4)), np.zeros((1, 1)),
        np.ones((1, 1)))
    return self.predict(dd)[0]

  def grad_one(self, X, atomic_nums, constraints=None):
+1 −1
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ class TestGraphModels(unittest.TestCase):
        mol.SetProp("atom %08d %s" % (atom.GetIdx(), atom_feature_name),
                    str(val))
        atom_features.append(np.random.normal())
      y.append(np.sum(atom_features))
      y.append([np.sum(atom_features)])

    featurizer = ConvMolFeaturizer(atom_properties=[atom_feature_name])
    X = featurizer.featurize(dataset.X)
+1 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ class TestANIRegression(unittest.TestCase):
        [0, 0, 0, 0],
    ]])

    y = np.array([2.0, 1.1])
    y = np.array([[2.0], [1.1]])

    layer_structures = [128, 128, 64]
    atom_number_cases = [1, 6, 7, 8]
Loading