Commit 9829acd6 authored by nd-02110114's avatar nd-02110114
Browse files

Merge branch 'master' into sklearn-model

parents d4d7470f cd7d2c1b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ conda install -y -c conda-forge rdkit deepchem==2.3.0
You install the nightly build version via pip. The nightly version is built by the HEAD of DeepChem.

```bash
pip install tensorflow==2.2.0
pip install tensorflow==2.3.0
pip install --pre deepchem
```

+12 −11
Original line number Diff line number Diff line
@@ -134,6 +134,7 @@ class Featurizer(object):

    override_args_info = ''
    for arg_name, default in zip(args_names, args_default_values):
      if arg_name in self.__dict__:
        arg_value = self.__dict__[arg_name]
        # validation
        # skip list
+2 −2
Original line number Diff line number Diff line
@@ -344,8 +344,8 @@ class MultitaskRegressor(KerasModel):
class MultitaskFitTransformRegressor(MultitaskRegressor):
  """Implements a MultitaskRegressor that performs on-the-fly transformation during fit/predict.

  Example:

  Examples
  --------
  >>> n_samples = 10
  >>> n_features = 3
  >>> n_tasks = 1
+6 −4
Original line number Diff line number Diff line
@@ -559,7 +559,9 @@ class KerasModel(Model):
      returns the values of the uncertainty outputs.
    other_output_types: list, optional
      Provides a list of other output_types (strings) to predict from model.
    Returns:

    Returns
    -------
    a NumPy array of the model produces a single output, or a list of arrays
    if it produces multiple outputs
    """
@@ -784,7 +786,7 @@ class KerasModel(Model):
    if it produces multiple outputs
    """
    generator = self.default_generator(
        dataset, mode='predict', pad_batches=False)
        dataset, mode='predict', deterministic=True, pad_batches=False)
    return self.predict_on_generator(
        generator,
        transformers=transformers,
+19 −2
Original line number Diff line number Diff line
@@ -3,10 +3,12 @@ import tensorflow as tf
import collections

import logging
import deepchem as dc
from deepchem.metrics import to_one_hot
from deepchem.models import KerasModel
from deepchem.models.layers import Stack
from deepchem.models.losses import SoftmaxCrossEntropy, L2Loss
from typing import Tuple, Iterable, List

logger = logging.getLogger(__name__)

@@ -348,6 +350,21 @@ class RobustMultitaskRegressor(KerasModel):
      task_out = tf.keras.layers.Dense(1)(task_layer)
      task_outputs.append(task_out)

    outputs = tf.keras.layers.Concatenate(axis=1)(task_outputs)
    outputs = Stack(axis=1)(task_outputs)
    model = tf.keras.Model(inputs=mol_features, outputs=outputs)
    super(RobustMultitaskRegressor, self).__init__(model, L2Loss(), **kwargs)
    super(RobustMultitaskRegressor, self).__init__(
        model, L2Loss(), output_types=['prediction'], **kwargs)

  def default_generator(
      self,
      dataset: dc.data.Dataset,
      epochs: int = 1,
      mode: str = 'fit',
      deterministic: bool = True,
      pad_batches: bool = True) -> Iterable[Tuple[List, List, List]]:
    for epoch in range(epochs):
      for (X_b, y_b, w_b, ids_b) in dataset.iterbatches(
          batch_size=self.batch_size,
          deterministic=deterministic,
          pad_batches=pad_batches):
        yield ([X_b], [y_b], [w_b])
Loading