Cocoyawn32's picture
Add files using upload-large-folder tool
3f6e26d verified
Raw
History Blame Contribute Delete
910 Bytes
import torch.nn as nn
class ConnectorTransformer(nn.Module):
def __init__(self, input_dim, output_dim, depth=2, num_heads=4, mlp_ratio=4.0):
super().__init__()
if input_dim != output_dim:
self.input_proj = nn.Linear(input_dim, output_dim)
else:
self.input_proj = nn.Identity()
hidden_size = output_dim
encoder_layer = nn.TransformerEncoderLayer(
d_model=hidden_size,
nhead=num_heads,
dim_feedforward=int(hidden_size * mlp_ratio),
activation="gelu",
batch_first=True,
norm_first=True
)
self.encoder = nn.TransformerEncoder(encoder_layer, num_layers=depth)
self.norm = nn.LayerNorm(hidden_size)
def forward(self, x):
x = self.input_proj(x)
x = self.encoder(x)
x = self.norm(x)
return x