class_docstr: Serial block class.
  Note: In this implementation, each serial block only contains a conv-attention and a FFN (MLP) module. 
class_docstr_tok: ["Serial","block","class",".","Note",":","In","this","implementation",",","each","serial","block","only","contains","a","conv-attention","and","a","FFN","(","MLP",")","module","."]
code: def forward(self, x, size: Tuple[int, int]):
      # Conv-Attention.
      x = self.cpe(x, size)
      cur = self.norm1(x)
      cur = self.factoratt_crpe(cur, size)
      x = x + self.drop_path(cur)
  
      # MLP.
      cur = self.norm2(x)
      cur = self.mlp(cur)
      x = x + self.drop_path(cur)
  
      return x
  
imports: from functools import partial
  from typing import Tuple, List, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from timm.data import IMAGENET_DEFAULT_MEAN, IMAGENET_DEFAULT_STD
  from timm.layers import PatchEmbed, Mlp, DropPath, to_2tuple, trunc_normal_, _assert, LayerNorm
  from ._builder import build_model_with_cfg
  from ._registry import register_model, generate_default_cfgs
label_desc: Use image node_id 2 for calling the SerialBlock obj's underlying member method code with example usage: obj.forward(x, size) and returns: x