Skip to content

Latest commit

 

History

History
435 lines (325 loc) · 27.8 KB

models.rst

File metadata and controls

435 lines (325 loc) · 27.8 KB

Model Classes

DeepChem maintains an extensive collection of models for scientific applications. DeepChem's focus is on facilitating scientific applications, so we support a broad range of different machine learning frameworks (currently scikit-learn, xgboost, TensorFlow, and PyTorch) since different frameworks are more and less suited for different scientific applications.

Model Cheatsheet

If you're just getting started with DeepChem, you're probably interested in the basics. The place to get started is this "model cheatsheet" that lists various types of custom DeepChem models. Note that some wrappers like SklearnModel and XGBoostModel which wrap external machine learning libraries are excluded, but this table is otherwise complete.

As a note about how to read this table, each row describes what's needed to invoke a given model. Some models must be applied with given Transformer or Featurizer objects. Some models also have custom training methods. You can read off what's needed to train the model from the table below.

Model Type Input Type Transformations Acceptable Featurizers Fit Method
AtomicConvModel Classifier/ Regressor Tuple ComplexNeighborListFragmentAtomicCoordinates fit
ChemCeption Classifier/ Regressor Tensor of shape (N, M, c) SmilesToImage fit
CNN Classifier/ Regressor Tensor of shape (N, c) or (N, M, c) or (N, M, L, c) fit
DTNNModel Classifier/ Regressor Matrix of shape (N, N) CoulombMatrix fit
DAGModel Classifier/ Regressor ConvMol DAGTransformer ConvMolFeaturizer fit
GraphConvModel Classifier/ Regressor ConvMol ConvMolFeaturizer fit
MPNNModel Classifier/ Regressor WeaveMol WeaveFeaturizer fit
MultitaskClassifier Classifier Vector of shape (N,) CircularFingerprint, RDKitDescriptors, CoulombMatrixEig, RdkitGridFeaturizer, BindingPocketFeaturizer, AdjacencyFingerprint, ElementPropertyFingerprint, fit
MultitaskRegressor Regressor Vector of shape (N,) CircularFingerprint, RDKitDescriptors, CoulombMatrixEig, RdkitGridFeaturizer, BindingPocketFeaturizer, AdjacencyFingerprint, ElementPropertyFingerprint, fit
MultitaskFitTransformRegressor Regressor Vector of shape (N,) Any CircularFingerprint, RDKitDescriptors, CoulombMatrixEig, RdkitGridFeaturizer, BindingPocketFeaturizer, AdjacencyFingerprint, ElementPropertyFingerprint, fit
MultitaskIRVClassifier Classifier Vector of shape (N,) IRVTransformer CircularFingerprint, RDKitDescriptors, CoulombMatrixEig, RdkitGridFeaturizer, BindingPocketFeaturizer, AdjacencyFingerprint, ElementPropertyFingerprint, fit
ProgressiveMultitaskClassifier Classifier Vector of shape (N,) CircularFingerprint, RDKitDescriptors, CoulombMatrixEig, RdkitGridFeaturizer, BindingPocketFeaturizer, AdjacencyFingerprint, ElementPropertyFingerprint, fit
ProgressiveMultitaskRegressor Regressor Vector of shape (N,) CircularFingerprint, RDKitDescriptors, CoulombMatrixEig, RdkitGridFeaturizer, BindingPocketFeaturizer, AdjacencyFingerprint, ElementPropertyFingerprint, fit
RobustMultitaskClassifier Classifier Vector of shape (N,) CircularFingerprint, RDKitDescriptors, CoulombMatrixEig, RdkitGridFeaturizer, BindingPocketFeaturizer, AdjacencyFingerprint, ElementPropertyFingerprint, fit
RobustMultitaskRegressor Regressor Vector of shape (N,) CircularFingerprint, RDKitDescriptors, CoulombMatrixEig, RdkitGridFeaturizer, BindingPocketFeaturizer, AdjacencyFingerprint, ElementPropertyFingerprint, fit
ScScoreModel Classifier Vector of shape (N,) CircularFingerprint, RDKitDescriptors, CoulombMatrixEig, RdkitGridFeaturizer, BindingPocketFeaturizer, AdjacencyFingerprint, ElementPropertyFingerprint, fit
SeqToSeq Sequence Sequence fit_sequences
Smiles2Vec Classifier/ Regressor Sequence SmilesToSeq fit
TextCNNModel Classifier/ Regressor String :code:fit
WGAN Adversarial Pair fit_gan
CGCNNModel Classifier/ Regressor GraphData CGCNNFeaturizer fit
GATModel Classifier/ Regressor GraphData MolGraphConvFeaturizer fit

Model

deepchem.models.Model

Scikit-Learn Models

Scikit-learn's models can be wrapped so that they can interact conveniently with DeepChem. Oftentimes scikit-learn models are more robust and easier to train and are a nice first model to train.

SklearnModel

deepchem.models.SklearnModel

Xgboost Models

Xgboost models can be wrapped so they can interact with DeepChem.

XGBoostModel

deepchem.models.XGBoostModel

Deep Learning Infrastructure

DeepChem maintains a lightweight layer of common deep learning model infrastructure that can be used for models built with different underlying frameworks. The losses and optimizers can be used for both TensorFlow and PyTorch models.

Losses

deepchem.models.losses.Loss

deepchem.models.losses.L1Loss

deepchem.models.losses.L2Loss

deepchem.models.losses.HingeLoss

deepchem.models.losses.BinaryCrossEntropy

deepchem.models.losses.CategoricalCrossEntropy

deepchem.models.losses.SigmoidCrossEntropy

deepchem.models.losses.SoftmaxCrossEntropy

deepchem.models.losses.SparseSoftmaxCrossEntropy

deepchem.models.losses.SparseSoftmaxCrossEntropy

Optimizers

deepchem.models.optimizers.Optimizer

deepchem.models.optimizers.LearningRateSchedule

deepchem.models.optimizers.AdaGrad

deepchem.models.optimizers.Adam

deepchem.models.optimizers.RMSProp

deepchem.models.optimizers.GradientDescent

deepchem.models.optimizers.ExponentialDecay

deepchem.models.optimizers.PolynomialDecay

deepchem.models.optimizers.LinearCosineDecay

deepchem.models.optimizers.LinearCosineDecay

Keras Models

DeepChem extensively uses Keras to build deep learning models.

KerasModel

Training loss and validation metrics can be automatically logged to Weights & Biases with the following commands:

# Install wandb in shell
pip install wandb

# Login in shell (required only once)
wandb login

# Start a W&B run in your script (refer to docs for optional parameters)
wandb.init(project="my project")

# Set `wandb` arg when creating `KerasModel`
model = KerasModel(…, wandb=True)

deepchem.models.KerasModel

MultitaskRegressor

deepchem.models.MultitaskRegressor

MultitaskFitTransformRegressor

deepchem.models.MultitaskFitTransformRegressor

MultitaskClassifier

deepchem.models.MultitaskClassifier

TensorflowMultitaskIRVClassifier

deepchem.models.TensorflowMultitaskIRVClassifier

RobustMultitaskClassifier

deepchem.models.RobustMultitaskClassifier

RobustMultitaskRegressor

deepchem.models.RobustMultitaskRegressor

ProgressiveMultitaskClassifier

deepchem.models.ProgressiveMultitaskClassifier

ProgressiveMultitaskRegressor

deepchem.models.ProgressiveMultitaskRegressor

WeaveModel

deepchem.models.WeaveModel

DTNNModel

deepchem.models.DTNNModel

DAGModel

deepchem.models.DAGModel

GraphConvModel

deepchem.models.GraphConvModel

MPNNModel

deepchem.models.MPNNModel

ScScoreModel

deepchem.models.ScScoreModel

SeqToSeq

deepchem.models.SeqToSeq

GAN

deepchem.models.GAN

WGAN

deepchem.models.WGAN

CNN

deepchem.models.CNN

TextCNNModel

deepchem.models.TextCNNModel

AtomicConvModel

deepchem.models.AtomicConvModel

Smiles2Vec

deepchem.models.Smiles2Vec

ChemCeption

deepchem.models.ChemCeption

PyTorch Models

DeepChem supports the use of PyTorch to build deep learning models.

TorchModel

You can wrap an arbitrary torch.nn.Module in a TorchModel object.

deepchem.models.TorchModel

CGCNNModel

deepchem.models.CGCNNModel

GATModel

deepchem.models.GATModel