| 360 | |
| 361 | |
| 362 | class BertOutput(nn.Module): |
| 363 | def __init__(self, config): |
| 364 | super().__init__() |
| 365 | self.dense = nn.Linear(config.intermediate_size, config.hidden_size) |
| 366 | self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) |
| 367 | self.dropout = nn.Dropout(config.hidden_dropout_prob) |
| 368 | |
| 369 | def forward(self, hidden_states, input_tensor): |
| 370 | hidden_states = self.dense(hidden_states) |
| 371 | hidden_states = self.dropout(hidden_states) |
| 372 | hidden_states = self.LayerNorm(hidden_states + input_tensor) |
| 373 | return hidden_states |
| 374 | |
| 375 | |
| 376 | class BertLayer(nn.Module): |