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

Merge pull request #966 from peastman/multitask

Simplified names of TensorGraphMultiTask models
parents 1f02f283 f3100681
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -18,9 +18,9 @@ from deepchem.models.sequential import Sequential
from deepchem.models.tensorflow_models.fcnet import TensorflowMultiTaskRegressor
from deepchem.models.tensorflow_models.fcnet import TensorflowMultiTaskClassifier
from deepchem.models.tensorflow_models.fcnet import TensorflowMultiTaskFitTransformRegressor
from deepchem.models.tensorflow_models.fcnet import TensorGraphMultiTaskRegressor
from deepchem.models.tensorflow_models.fcnet import TensorGraphMultiTaskClassifier
from deepchem.models.tensorflow_models.fcnet import TensorGraphMultiTaskFitTransformRegressor
from deepchem.models.tensorflow_models.fcnet import MultiTaskRegressor
from deepchem.models.tensorflow_models.fcnet import MultiTaskClassifier
from deepchem.models.tensorflow_models.fcnet import MultiTaskFitTransformRegressor
from deepchem.models.tensorflow_models.robust_multitask import RobustMultitaskRegressor
from deepchem.models.tensorflow_models.robust_multitask import RobustMultitaskClassifier
from deepchem.models.tensorflow_models.lr import TensorflowLogisticRegression
+17 −18
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ from deepchem.models.tensorgraph.tensor_graph import TensorGraph, TFWrapper
from deepchem.models.tensorgraph.layers import Feature, Label, Weights, WeightedError, Dense, Dropout, WeightDecay, Reshape, SoftMaxCrossEntropy, L2Loss, ReduceSum


class TensorGraphMultiTaskClassifier(TensorGraph):
class MultiTaskClassifier(TensorGraph):

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

    In addition to the following arguments, this class also accepts all the keywork arguments
    from TensorGraph.
@@ -73,7 +73,7 @@ class TensorGraphMultiTaskClassifier(TensorGraph):
    n_classes: int
      the number of classes
    """
    super(TensorGraphMultiTaskClassifier, self).__init__(**kwargs)
    super(MultiTaskClassifier, self).__init__(**kwargs)
    self.n_tasks = n_tasks
    self.n_features = n_features
    self.n_classes = n_classes
@@ -152,8 +152,8 @@ class TensorGraphMultiTaskClassifier(TensorGraph):
        yield feed_dict

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

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


class TensorGraphMultiTaskRegressor(TensorGraph):
class MultiTaskRegressor(TensorGraph):

  def __init__(self,
               n_tasks,
@@ -195,7 +195,7 @@ class TensorGraphMultiTaskRegressor(TensorGraph):
               dropouts=0.5,
               activation_fns=tf.nn.relu,
               **kwargs):
    """Create a TensorGraphMultiTaskRegressor.
    """Create a MultiTaskRegressor.

    In addition to the following arguments, this class also accepts all the keywork arguments
    from TensorGraph.
@@ -228,7 +228,7 @@ class TensorGraphMultiTaskRegressor(TensorGraph):
      len(layer_sizes).  Alternatively this may be a single value instead of a list, in which case the
      same value is used for every layer.
    """
    super(TensorGraphMultiTaskRegressor, self).__init__(**kwargs)
    super(MultiTaskRegressor, self).__init__(**kwargs)
    self.n_tasks = n_tasks
    self.n_features = n_features
    n_layers = len(layer_sizes)
@@ -309,8 +309,8 @@ class TensorGraphMultiTaskRegressor(TensorGraph):
        yield feed_dict


class TensorGraphMultiTaskFitTransformRegressor(TensorGraphMultiTaskRegressor):
  """Implements a TensorGraphMultiTaskRegressor 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:

@@ -336,10 +336,10 @@ class TensorGraphMultiTaskFitTransformRegressor(TensorGraphMultiTaskRegressor):
               n_evals=1,
               batch_size=50,
               **kwargs):
    """Create a TensorGraphMultiTaskFitTransformRegressor.
    """Create a MultiTaskFitTransformRegressor.

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

    Parameters
    ----------
@@ -367,7 +367,7 @@ class TensorGraphMultiTaskFitTransformRegressor(TensorGraphMultiTaskRegressor):
      X_b = transformer.X_transform(X_b)
    n_features = X_b.shape[1]
    print("n_features after fit_transform: %d" % int(n_features))
    super(TensorGraphMultiTaskFitTransformRegressor, self).__init__(
    super(MultiTaskFitTransformRegressor, self).__init__(
        n_tasks, n_features, batch_size=batch_size, **kwargs)

  def default_generator(self,
@@ -405,9 +405,8 @@ class TensorGraphMultiTaskFitTransformRegressor(TensorGraphMultiTaskRegressor):
        feed_dict[self.features[0]] = X_t
        yield feed_dict

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


class TensorflowMultiTaskClassifier(TensorflowClassifier):
+1 −0
Original line number Diff line number Diff line
@@ -211,6 +211,7 @@ class Layer(object):
    Instead, the input to the first dense layer will be a different layer
    specified in the replacements map.

    >>> new_input = Feature(shape=(None, 100))
    >>> replacements = {input: new_input}
    >>> dense3_copy = dense3.copy(replacements)

+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
#    return self.out_tensor
#
#
#def tensorGraphMultitaskClassifier(n_tasks,
#def MultiTaskClassifier(n_tasks,
#                                   n_features,
#                                   layer_sizes=[500],
#                                   bypass_layer_sizes=[100],
+1 −1
Original line number Diff line number Diff line
@@ -215,7 +215,7 @@ class TestAPI(unittest.TestCase):
        dc.metrics.Metric(dc.metrics.accuracy_score)
    ]

    model = dc.models.TensorGraphMultiTaskClassifier(len(tasks), n_features)
    model = dc.models.MultiTaskClassifier(len(tasks), n_features)

    # Test Parameter getting and setting
    param, value = 'weight_decay_penalty_type', 'l2'
Loading