IAmKarthik's picture
Deploy ESM-2, MoLFormer, and affinity ONNX application
245bd92 verified
Raw
History Blame Contribute Delete
881 Bytes
from __future__ import annotations
import torch
from torch import nn
class AffinityRegressor(nn.Module):
def __init__(
self,
input_dim: int,
hidden_dims: list[int] | tuple[int, ...] = (256, 128, 64),
dropout: float = 0.2,
) -> None:
super().__init__()
layers: list[nn.Module] = []
previous = input_dim
for hidden in hidden_dims:
layers.extend(
[
nn.Linear(previous, hidden),
nn.LayerNorm(hidden),
nn.GELU(),
nn.Dropout(dropout),
]
)
previous = hidden
layers.append(nn.Linear(previous, 1))
self.network = nn.Sequential(*layers)
def forward(self, features: torch.Tensor) -> torch.Tensor:
return self.network(features).squeeze(-1)