| 227 | |
| 228 | |
| 229 | class UVit2DConvEmbed(nn.Module): |
| 230 | def __init__(self, in_channels, block_out_channels, vocab_size, elementwise_affine, eps, bias): |
| 231 | super().__init__() |
| 232 | self.embeddings = nn.Embedding(vocab_size, in_channels) |
| 233 | self.layer_norm = RMSNorm(in_channels, eps, elementwise_affine) |
| 234 | self.conv = nn.Conv2d(in_channels, block_out_channels, kernel_size=1, bias=bias) |
| 235 | |
| 236 | def forward(self, input_ids): |
| 237 | embeddings = self.embeddings(input_ids) |
| 238 | embeddings = self.layer_norm(embeddings) |
| 239 | embeddings = embeddings.permute(0, 3, 1, 2) |
| 240 | embeddings = self.conv(embeddings) |
| 241 | return embeddings |
| 242 | |
| 243 | |
| 244 | class UVitBlock(nn.Module): |
no outgoing calls
no test coverage detected
searching dependent graphs…