Spaces:
Running on Zero
Running on Zero
File size: 904 Bytes
9cde5e3 137f7ef 9cde5e3 137f7ef 9cde5e3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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 |