(self, args, dictionary, embed_tokens)
| 319 | """ |
| 320 | |
| 321 | def __init__(self, args, dictionary, embed_tokens): |
| 322 | super().__init__(dictionary) |
| 323 | self.dropout_module = FairseqDropout( |
| 324 | args.dropout, module_name=self.__class__.__name__ |
| 325 | ) |
| 326 | |
| 327 | embed_dim = embed_tokens.embedding_dim |
| 328 | self.padding_idx = embed_tokens.padding_idx |
| 329 | self.max_source_positions = args.max_source_positions |
| 330 | |
| 331 | self.embed_tokens = embed_tokens |
| 332 | self.embed_scale = math.sqrt(embed_dim) |
| 333 | self.embed_positions = ( |
| 334 | PositionalEmbedding( |
| 335 | args.max_source_positions, |
| 336 | embed_dim, |
| 337 | self.padding_idx, |
| 338 | learned=args.encoder_learned_pos, |
| 339 | ) |
| 340 | if not args.no_token_positional_embeddings |
| 341 | else None |
| 342 | ) |
| 343 | |
| 344 | self.layers = nn.ModuleList([]) |
| 345 | self.layers.extend( |
| 346 | [ |
| 347 | LightConvEncoderLayer( |
| 348 | args, kernel_size=args.encoder_kernel_size_list[i] |
| 349 | ) |
| 350 | for i in range(args.encoder_layers) |
| 351 | ] |
| 352 | ) |
| 353 | self.register_buffer("version", torch.Tensor([2])) |
| 354 | self.normalize = args.encoder_normalize_before |
| 355 | if self.normalize: |
| 356 | self.layer_norm = LayerNorm(embed_dim) |
| 357 | |
| 358 | def forward(self, src_tokens, **unused): |
| 359 | """ |
nothing calls this directly
no test coverage detected