Spaces:
Running on Zero
Running on Zero
Download src/transformer/transformer.py from zeguru/tiny-transformers: direct link, hf CLI and curl.
- Browser
- Download file 904 Bytes
-
https://huggingface.co/spaces/zeguru/tiny-transformers/resolve/main/src/transformer/transformer.py
- Command line
-
hf download hf://spaces/zeguru/tiny-transformers/src/transformer/transformer.py
-
curl -L -o transformer.py https://huggingface.co/spaces/zeguru/tiny-transformers/resolve/main/src/transformer/transformer.py
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 |