Table of Contents
Shortcuts

# RNNCell

class torch.nn.RNNCell(input_size, hidden_size, bias=True, nonlinearity='tanh', device=None, dtype=None)

  An Elman RNN cell with tanh or ReLU non-linearity.

  h′=tanh⁡(W i h x+b i h+W h h h+b h h)h' = \tanh(W_{ih} x + b_{ih} + W_{hh} h + b_{hh})h′=tanh(W ih​x+b ih​+W hh​h+b hh​)

  If `nonlinearity` is ‘relu’, then ReLU is used in place of tanh.

  Parameters:

    - input_size (int) – The number of expected features in the input x

    - hidden_size (int) – The number of features in the hidden state h

    - bias (bool) – If `False`, then the layer does not use bias weights b_ih and b_hh. Default: `True`

    - nonlinearity (str) – The non-linearity to use. Can be either `'tanh'` or `'relu'`. Default: `'tanh'`

  Inputs: input, hidden

    - input: tensor containing input features

    - hidden: tensor containing the initial hidden state Defaults to zero if not provided.

  Outputs: h’

    - h’ of shape (batch, hidden_size): tensor containing the next hidden state for each element in the batch

  Shape:

    - input: (N,H i n)(N, H_{in})(N,H in​) or (H i n)(H_{in})(H in​) tensor containing input features where H i n H_{in}H in​ = input_size.

    - hidden: (N,H o u t)(N, H_{out})(N,H o u t​) or (H o u t)(H_{out})(H o u t​) tensor containing the initial hidden state where H o u t H_{out}H o u t​ = hidden_size. Defaults to zero if not provided.

    - output: (N,H o u t)(N, H_{out})(N,H o u t​) or (H o u t)(H_{out})(H o u t​) tensor containing the next hidden state.

  Variables:

    - weight_ih (torch.Tensor) – the learnable input-hidden weights, of shape (hidden_size, input_size)

    - weight_hh (torch.Tensor) – the learnable hidden-hidden weights, of shape (hidden_size, hidden_size)

    - bias_ih – the learnable input-hidden bias, of shape (hidden_size)

    - bias_hh – the learnable hidden-hidden bias, of shape (hidden_size)

  Note

  All the weights and biases are initialized from U(−k,k)\mathcal{U}(-\sqrt{k}, \sqrt{k})U(−k
  ​,k
  ​) where k=1 hidden_size k = \frac{1}{\text{hidden\_size}}k=hidden_size 1​

  Examples:

      >>> rnn = nn.RNNCell(10, 20)
      >>> input = torch.randn(6, 3, 10)
      >>> hx = torch.randn(3, 20)
      >>> output = []
      >>> for i in range(6):
      ...     hx = rnn(input[i], hx)
      ...     output.append(hx)

## Docs

Access comprehensive developer documentation for PyTorch

View Docs

## Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

## Resources

Find development resources and get your questions answered

View Resources

To analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available controls: Cookies Policy.