I continue.
I’m trying to change:
https://github.com/dbetm/DeepLearningLifeSciences/blob/main/06_Genomics/Predicting_transcription_factor_binding.ipynb
Changed code:
indeimport deepchem as dc
import torch
import numpy as np
from torchsummary import summary
pytorch_model = torch.nn.Sequential(
torch.nn.Flatten(),
torch.nn.Unflatten(1,(4,101)),
torch.nn.Conv1d(in_channels=4, out_channels=15, kernel_size=10, padding=‘same’),
torch.nn.ReLU(),
torch.nn.Dropout(0.5),
torch.nn.Conv1d(in_channels=15, out_channels=15, kernel_size=10, padding=‘same’),
torch.nn.ReLU(),
torch.nn.Dropout(0.5),
torch.nn.Conv1d(in_channels=15, out_channels=15, kernel_size=10, padding=‘same’),
torch.nn.ReLU(),
torch.nn.Dropout(0.5),
torch.nn.Flatten(),
torch.nn.Linear(1515, 1),
torch.nn.Sigmoid()
)
print(summary(pytorch_model, (101,4)))
model = dc.models.TorchModel(
pytorch_model,
loss=dc.models.losses.SigmoidCrossEntropy(),
output_types=[‘prediction’, ‘loss’],
batch_size=1000,
model_dir=‘pt’)
train = dc.data.DiskDataset(‘train_dataset’)
valid = dc.data.DiskDataset(‘valid_dataset’)
metric = dc.metrics.Metric(dc.metrics.roc_auc_score)
train2 = dc.data.DiskDataset.from_numpy(train.X.astype(np.float64),train.y.astype(np.float64),train.w.astype(np.float64))
valid2 = dc.data.DiskDataset.from_numpy(valid.X.astype(np.float64),valid.y.astype(np.float64),valid.w.astype(np.float64))
for i in range(20):
model.fit(train2, nb_epoch=10)
print(model.evaluate(train2, [metric]))
print(model.evaluate(valid2, [metric]))
Error:
IndexError Traceback (most recent call last)
in <cell line: 0>()
6 print(train2)
7 for i in range(20):
----> 8 model.fit(train2, nb_epoch=10)
9 print(model.evaluate(train2, [metric]))
10 print(model.evaluate(valid2, [metric]))
2 frames
/usr/local/lib/python3.11/dist-packages/deepchem/models/torch_models/torch_model.py in (.0)
435 outputs = [outputs]
436 if self._loss_outputs is not None:
–> 437 outputs = [outputs[i] for i in self._loss_outputs]
438 batch_loss = loss(outputs, labels, weights)
439 batch_loss.backward()
IndexError: list index out of range
Where am I wrong?