- Neural networks from scratch in PyTorch
- 1D CNNs for DNA motif detection
- Transformers and self-attention
- ESM-2 protein language model
- Fine-tuning pre-trained models
class DNAClassifier(nn.Module):
def __init__(self):
super().__init__()
self.embed = nn.Embedding(5, 64)
self.conv = nn.Conv1d(64,128, kernel_size=8)
self.pool = nn.AdaptiveMaxPool1d(32)
self.head = nn.Linear(128*32, 5)
def forward(self, x):
x = self.embed(x).permute(0,2,1)
return self.head(self.pool(
torch.relu(self.conv(x))).flatten(1))