(self, src, has_mask=True)
| 129 | nn.init.uniform_(self.decoder.weight, -initrange, initrange) |
| 130 | |
| 131 | def forward(self, src, has_mask=True): |
| 132 | if has_mask: |
| 133 | device = src.device |
| 134 | if self.src_mask is None or self.src_mask.size(0) != len(src): |
| 135 | mask = self._generate_square_subsequent_mask(len(src)).to(device) |
| 136 | self.src_mask = mask |
| 137 | else: |
| 138 | self.src_mask = None |
| 139 | |
| 140 | src = self.input_emb(src) * math.sqrt(self.ninp) |
| 141 | src = self.pos_encoder(src) |
| 142 | output = self.encoder(src, mask=self.src_mask) |
| 143 | output = self.decoder(output) |
| 144 | return F.log_softmax(output, dim=-1) |
nothing calls this directly
no test coverage detected