import deepchem as dc
import numpy as np # Import numpy
Load your dataset (replace with your actual data loading)
tasks, datasets, transformers = dc.molnet.load_tox21(featurizer=‘GraphConv’, split=‘index’)
train_dataset, valid_dataset, test_dataset = datasets
Get the number of atom features
num_features = train_dataset.X[0].get_atom_features().shape[1]
print(f"Number of atom features: {num_features}")
Initialize the GraphConvModel (PyTorch version)
model = dc.models.torch_models.GraphConvModel(
n_tasks=len(tasks),
mode=‘regression’, # or ‘classification’
dropout=0.2,
number_input_features=num_features, # Pass the integer directly
batch_normalize=False
)
Train the model
model.fit(train_dataset, nb_epoch=10) # Adjust nb_epoch as needed
Evaluate the model
metric = dc.metrics.Metric(dc.metrics.pearson_r2_score, task_averaging_mode=‘macro’)
train_scores = model.evaluate(train_dataset, [metric], transformers)
valid_scores = model.evaluate(valid_dataset, [metric], transformers)
print(f"Train scores: {train_scores}")
print(f"Validation scores: {valid_scores}")
Try it.