tiny-transformers / src /transformer /transformer.py
zeguru's picture
Upload folder using huggingface_hub
137f7ef verified
Raw History Blame Contribute Delete
904 Bytes
import torch
import torch.nn as nn
from src.transformer.transformer_block import TransformerBlock
class Transformer(nn.Module):
def __init__(
self,
d_model: int,
d_ff: int,
context_length: int,
num_layers: int,
number_of_heads: int,
dropout = 0.1
):
super().__init__()
self.blocks = nn.ModuleList([
TransformerBlock(
d_model=d_model,
d_ff=d_ff,
context_length=context_length,
dropout=dropout,
number_of_heads=number_of_heads
)
for _ in range(num_layers)
])
def forward(self,
x: torch.Tensor,
padding_mask: torch.Tensor | None = None,) -> torch.Tensor:
for block in self.blocks:
x = block(x,padding_mask=padding_mask,)
return x