class_docstr: PoolFormer block structure.
  Args:
      dim (int): embedding dimension
      pool_size (int): pooling size
      mlp_ratio (float): mlp ratio
      act_layer (nn.module): activation layer
      norm_layer (nn.module): normalization layer
      drop (float): drop out rate
      drop_path (float): stochastic depth
      use_layer_scale (bool): use layer scale
      layer_scale_init_value (float): layer scale init value
code: def forward(self, x):
      if self.use_layer_scale:
          x = x + self.drop_path(
              self.layer_scale_1.unsqueeze(-1).unsqueeze(-1)
              * self.token_mixer(self.norm1(x))
          )
          x = x + self.drop_path(
              self.layer_scale_2.unsqueeze(-1).unsqueeze(-1)
              * self.mlp(self.norm2(x))
          )
      else:
          x = x + self.drop_path(self.token_mixer(self.norm1(x)))
          x = x + self.drop_path(self.mlp(self.norm2(x)))
      return x
  
file_path: towhee/towhee/models/poolformer/poolformerblock.py
imports: from torch import nn
  import torch
  from towhee.models.layers.droppath import DropPath
  from towhee.models.poolformer.mlp import Mlp
  from towhee.models.poolformer.groupnorm import GroupNorm
  from towhee.models.poolformer.pooling import Pooling
label_desc: Use image node_id 2 for calling the PoolFormerBlock obj's underlying member method code with example usage: obj.forward(x) and returns: x