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

Merge pull request #1249 from peastman/multitask

Renamed MultiTask to Multitask
parents 30f2dd5e 94eceb02
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ import os
import tempfile
from deepchem.data import DiskDataset
from deepchem.models import SklearnModel
from deepchem.models import MultiTaskRegressor
from deepchem.models import MultitaskRegressor
from deepchem.dock.pose_scoring import GridPoseScorer
from deepchem.dock.pose_generation import VinaPoseGenerator
from sklearn.ensemble import RandomForestRegressor
@@ -91,7 +91,7 @@ class VinaGridDNNDocker(object):
    # Fit model on dataset
    pdbbind_tasks = ["-logKd/Ki"]
    n_features = 2052
    model = MultiTaskRegressor(
    model = MultitaskRegressor(
        len(pdbbind_tasks),
        n_features,
        dropouts=[.25],
+1 −1
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ class TestHyperparamOpt(unittest.TestCase):
    params_dict = {"layer_sizes": [(10,), (100,)]}

    def model_builder(model_params, model_dir):
      return dc.models.MultiTaskClassifier(
      return dc.models.MultitaskClassifier(
          len(tasks), n_features, model_dir=model_dir, **model_params)

    optimizer = dc.hyper.HyperparamOpt(model_builder)
+4 −4
Original line number Diff line number Diff line
@@ -10,10 +10,10 @@ from deepchem.models.xgboost_models import XGBoostModel
from deepchem.models.multitask import SingletaskToMultitask

from deepchem.models.tensorgraph.tensor_graph import TensorGraph
from deepchem.models.tensorgraph.fcnet import MultiTaskRegressor
from deepchem.models.tensorgraph.fcnet import MultiTaskClassifier
from deepchem.models.tensorgraph.fcnet import MultiTaskFitTransformRegressor
from deepchem.models.tensorgraph.IRV import TensorflowMultiTaskIRVClassifier
from deepchem.models.tensorgraph.fcnet import MultitaskRegressor
from deepchem.models.tensorgraph.fcnet import MultitaskClassifier
from deepchem.models.tensorgraph.fcnet import MultitaskFitTransformRegressor
from deepchem.models.tensorgraph.IRV import TensorflowMultitaskIRVClassifier
from deepchem.models.tensorgraph.robust_multitask import RobustMultitaskClassifier
from deepchem.models.tensorgraph.robust_multitask import RobustMultitaskRegressor
from deepchem.models.tensorgraph.progressive_multitask import ProgressiveMultitaskRegressor, ProgressiveMultitaskClassifier
+5 −5
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ class Slice(Layer):
    return out_tensor


class TensorflowMultiTaskIRVClassifier(TensorGraph):
class TensorflowMultitaskIRVClassifier(TensorGraph):

  def __init__(self,
               n_tasks,
@@ -152,7 +152,7 @@ class TensorflowMultiTaskIRVClassifier(TensorGraph):
               penalty=0.0,
               mode="classification",
               **kwargs):
    """Initialize TensorflowMultiTaskIRVClassifier
    """Initialize TensorflowMultitaskIRVClassifier

    Parameters
    ----------
@@ -169,7 +169,7 @@ class TensorflowMultiTaskIRVClassifier(TensorGraph):
    self.n_features = 2 * self.K * self.n_tasks
    logger.info("n_features after fit_transform: %d" % int(self.n_features))
    self.penalty = penalty
    super(TensorflowMultiTaskIRVClassifier, self).__init__(**kwargs)
    super(TensorflowMultitaskIRVClassifier, self).__init__(**kwargs)
    self.build_graph()

  def build_graph(self):
@@ -199,12 +199,12 @@ class TensorflowMultiTaskIRVClassifier(TensorGraph):
    self.add_output(outputs)

  def predict(self, dataset, transformers=[], outputs=None):
    out = super(TensorflowMultiTaskIRVClassifier, self).predict(
    out = super(TensorflowMultitaskIRVClassifier, self).predict(
        dataset, transformers=transformers, outputs=outputs)
    out = np.round(out).astype(int)
    return out

  def predict_proba(self, dataset, transformers=[], outputs=None):
    out = super(TensorflowMultiTaskIRVClassifier, self).predict_proba(
    out = super(TensorflowMultitaskIRVClassifier, self).predict_proba(
        dataset, transformers=transformers, outputs=outputs)
    return np.concatenate([1 - out, out], axis=2)
+15 −15
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ from deepchem.models.tensorgraph.layers import Feature, Label, Weights, Weighted
logger = logging.getLogger(__name__)


class MultiTaskClassifier(TensorGraph):
class MultitaskClassifier(TensorGraph):

  def __init__(self,
               n_tasks,
@@ -37,7 +37,7 @@ class MultiTaskClassifier(TensorGraph):
               activation_fns=tf.nn.relu,
               n_classes=2,
               **kwargs):
    """Create a MultiTaskClassifier.
    """Create a MultitaskClassifier.

    In addition to the following arguments, this class also accepts
    all the keyword arguments from TensorGraph.
@@ -76,7 +76,7 @@ class MultiTaskClassifier(TensorGraph):
    n_classes: int
      the number of classes
    """
    super(MultiTaskClassifier, self).__init__(**kwargs)
    super(MultitaskClassifier, self).__init__(**kwargs)
    self.n_tasks = n_tasks
    self.n_features = n_features
    self.n_classes = n_classes
@@ -169,7 +169,7 @@ class MultiTaskClassifier(TensorGraph):
    return tensors

  def predict_proba(self, dataset, transformers=[], outputs=None):
    return super(MultiTaskClassifier, self).predict(dataset, transformers,
    return super(MultitaskClassifier, self).predict(dataset, transformers,
                                                    outputs)

  def predict(self, dataset, transformers=[], outputs=None):
@@ -193,13 +193,13 @@ class MultiTaskClassifier(TensorGraph):
    y_pred: numpy ndarray or list of numpy ndarrays
    """
    # Results is of shape (n_samples, n_tasks, n_classes)
    retval = super(MultiTaskClassifier, self).predict(dataset, transformers,
    retval = super(MultitaskClassifier, self).predict(dataset, transformers,
                                                      outputs)
    # retval is of shape (n_samples, n_tasks)
    return np.argmax(retval, axis=2)


class MultiTaskRegressor(TensorGraph):
class MultitaskRegressor(TensorGraph):

  def __init__(self,
               n_tasks,
@@ -213,7 +213,7 @@ class MultiTaskRegressor(TensorGraph):
               activation_fns=tf.nn.relu,
               uncertainty=False,
               **kwargs):
    """Create a MultiTaskRegressor.
    """Create a MultitaskRegressor.

    In addition to the following arguments, this class also accepts all the keywork arguments
    from TensorGraph.
@@ -249,7 +249,7 @@ class MultiTaskRegressor(TensorGraph):
      if True, include extra outputs and loss terms to enable the uncertainty
      in outputs to be predicted
    """
    super(MultiTaskRegressor, self).__init__(**kwargs)
    super(MultitaskRegressor, self).__init__(**kwargs)
    self.n_tasks = n_tasks
    self.n_features = n_features
    n_layers = len(layer_sizes)
@@ -333,8 +333,8 @@ class MultiTaskRegressor(TensorGraph):
    self.set_loss(weighted_loss)


class MultiTaskFitTransformRegressor(MultiTaskRegressor):
  """Implements a MultiTaskRegressor that performs on-the-fly transformation during fit/predict.
class MultitaskFitTransformRegressor(MultitaskRegressor):
  """Implements a MultitaskRegressor that performs on-the-fly transformation during fit/predict.

  Example:

@@ -347,7 +347,7 @@ class MultiTaskFitTransformRegressor(MultiTaskRegressor):
  >>> w = np.ones((n_samples, n_tasks))
  >>> dataset = dc.data.NumpyDataset(X, y, w, ids)
  >>> fit_transformers = [dc.trans.CoulombFitTransformer(dataset)]
  >>> model = dc.models.MultiTaskFitTransformRegressor(n_tasks, [n_features, n_features],
  >>> model = dc.models.MultitaskFitTransformRegressor(n_tasks, [n_features, n_features],
  ...     dropouts=[0.], learning_rate=0.003, weight_init_stddevs=[np.sqrt(6)/np.sqrt(1000)],
  ...     batch_size=n_samples, fit_transformers=fit_transformers, n_evals=1)
  >>> model.n_features
@@ -361,10 +361,10 @@ class MultiTaskFitTransformRegressor(MultiTaskRegressor):
               n_evals=1,
               batch_size=50,
               **kwargs):
    """Create a MultiTaskFitTransformRegressor.
    """Create a MultitaskFitTransformRegressor.

    In addition to the following arguments, this class also accepts all the keywork arguments
    from MultiTaskRegressor.
    from MultitaskRegressor.

    Parameters
    ----------
@@ -392,7 +392,7 @@ class MultiTaskFitTransformRegressor(MultiTaskRegressor):
      X_b = transformer.X_transform(X_b)
    n_features = X_b.shape[1]
    logger.info("n_features after fit_transform: %d", int(n_features))
    super(MultiTaskFitTransformRegressor, self).__init__(
    super(MultitaskFitTransformRegressor, self).__init__(
        n_tasks, n_features, batch_size=batch_size, **kwargs)

  def default_generator(self,
@@ -430,5 +430,5 @@ class MultiTaskFitTransformRegressor(MultiTaskRegressor):
        feed_dict[self.features[0]] = X_t
        yield feed_dict

    return super(MultiTaskFitTransformRegressor, self).predict_on_generator(
    return super(MultitaskFitTransformRegressor, self).predict_on_generator(
        transform_generator(), transformers, outputs)
Loading