highway
allennlp.modules.highway
A Highway layer that does a gated combination of a linear transformation and a non-linear transformation of its input.
Highway#
class Highway(torch.nn.Module):
| def __init__(
| self,
| input_dim: int,
| num_layers: int = 1,
| activation: Callable[[torch.Tensor], torch.Tensor] = torch.nn.functional.relu
| ) -> None
A Highway layer does a gated combination of a linear
transformation and a non-linear transformation of its input. :math:y = g * x + (1 - g) *
f(A(x))
, where :math:A
is a linear transformation, :math:f
is an element-wise
non-linearity, and :math:g
is an element-wise gate, computed as :math:sigmoid(B(x))
.
This module will apply a fixed number of highway layers to its input, returning the final result.
Parameters
- input_dim :
int
The dimensionality of :math:x
. We assume the input has shape(batch_size, ..., input_dim)
. - num_layers :
int
, optional (default =1
)
The number of highway layers to apply to the input. - activation :
Callable[[torch.Tensor], torch.Tensor]
, optional (default =torch.nn.functional.relu
)
The non-linearity to use in the highway layers.
forward#
class Highway(torch.nn.Module):
| ...
| @overrides
| def forward(self, inputs: torch.Tensor) -> torch.Tensor