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.
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 |
deepchem.models.Model
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.
deepchem.models.SklearnModel
Xgboost models can be wrapped so they can interact with DeepChem.
deepchem.models.XGBoostModel
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.
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
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
DeepChem extensively uses Keras to build deep learning models.
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
deepchem.models.MultitaskRegressor
deepchem.models.MultitaskFitTransformRegressor
deepchem.models.MultitaskClassifier
deepchem.models.TensorflowMultitaskIRVClassifier
deepchem.models.RobustMultitaskClassifier
deepchem.models.RobustMultitaskRegressor
deepchem.models.ProgressiveMultitaskClassifier
deepchem.models.ProgressiveMultitaskRegressor
deepchem.models.WeaveModel
deepchem.models.DTNNModel
deepchem.models.DAGModel
deepchem.models.GraphConvModel
deepchem.models.MPNNModel
deepchem.models.ScScoreModel
deepchem.models.SeqToSeq
deepchem.models.GAN
deepchem.models.WGAN
deepchem.models.CNN
deepchem.models.TextCNNModel
deepchem.models.AtomicConvModel
deepchem.models.Smiles2Vec
deepchem.models.ChemCeption
DeepChem supports the use of PyTorch to build deep learning models.
You can wrap an arbitrary torch.nn.Module
in a TorchModel
object.
deepchem.models.TorchModel
deepchem.models.CGCNNModel
deepchem.models.GATModel