text: import torch.nn as nn
  
  from .functional import clones
  from .layer_norm import LayerNorm
  
  
  class Encoder(nn.Module):
      """
      Core encoder is a stack of N layers
      """
  
      def __init__(self, layer, n):
          super(Encoder, self).__init__()
          self.layers = clones(layer, n)
          self.norm = LayerNorm(layer.size)
  
      def forward(self, x, x_mask):
          """
          Pass the input (and mask) through each layer in turn.
          """
          for layer in self.layers:
              x = layer(x, x_mask)
          return self.norm(x)
  