A feed-forward neural network.

class allennlp.modules.feedforward.FeedForward(input_dim: int, num_layers: int, hidden_dims: Union[int, List[int]], activations: Union[allennlp.nn.activations.Activation, List[allennlp.nn.activations.Activation]], dropout: Union[float, List[float]] = 0.0)[source]

Bases: torch.nn.modules.module.Module, allennlp.common.from_params.FromParams

This Module is a feed-forward neural network, just a sequence of Linear layers with activation functions in between.


The dimensionality of the input. We assume the input has shape (batch_size, input_dim).


The number of Linear layers to apply to the input.

hidden_dimsUnion[int, List[int]]

The output dimension of each of the Linear layers. If this is a single int, we use it for all Linear layers. If it is a List[int], len(hidden_dims) must be num_layers.

activationsUnion[Callable, List[Callable]]

The activation function to use after each Linear layer. If this is a single function, we use it after all Linear layers. If it is a List[Callable], len(activations) must be num_layers.

dropoutUnion[float, List[float]], optional

If given, we will apply this amount of dropout after each layer. Semantics of float versus List[float] is the same as with other parameters.

forward(self, inputs: torch.Tensor) → torch.Tensor[source]

Defines the computation performed at every call.

Should be overridden by all subclasses.


Although the recipe for forward pass needs to be defined within this function, one should call the Module instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.