Another question:
RuntimeError: 
cannot call a value:
    Returns
    ----------
    output: ``torch.FloatTensor``.   
        The output of RNNs.
    """
    out, _ = self.layer(x)

    if self.batch_norm:
        output_size = out.size()
        out = self.bn(out.view(-1, self.output_dim)).view(output_size)
              ~~~~~~~ <--- HERE

    if self.droprate > 0:
        out = F.dropout(out, p=self.droprate, training=self.training)

    return out

The code is:
@torch.jit.script_method
      def forward(self, x):
          """
          Calculate the output.
  
          Parameters
          ----------
          x : ``torch.LongTensor``, required.
              the input tensor, of shape (seq_len, batch_size, input_dim).
 
          Returns
          ----------
          output: ``torch.FloatTensor``.   
             The output of RNNs.
         """
          out, _ = self.layer(x)
  
          if self.batch_norm:
              output_size = out.size()
              out = self.bn(out.view(-1, self.output_dim)).view(output_size)
  
          if self.droprate > 0:
              out = F.dropout(out, p=self.droprate, training=self.training)
  
          return out

The init function is the fourth one in the first post.