class_docstr: The Transformer block.
  Args:
      dim (`int`):
          Number of features.
      num_heads (`int`):
          Number of heads.
      mlp_ratio (`int`):
          Ratio of mlp layer.
      qkv_bias (`bool`):
          If add bias to qkv layer.
      qk_scale (`float`):
          Number to scale qk.
      drop_ratio (`float`):
          Drop rate at the end of the block (mlp layer)
      attn_drop_ratio (`float`):
          Drop rate of attention layer
      drop_path_ratio (`float`):
          Drop rate of drop_path layer
      act_layer (`nn.Module`):
          Activation layer
      norm_layer (`nn.Module`):
          Normalization layer.
code: def forward(self, x):
      x1, x2 = self.clone1(x, 2)
      x = self.add1([x1, self.attn(self.norm1(x2))])
      x1, x2 = self.clone2(x, 2)
      x = self.add2([x1, self.mlp(self.norm2(x2))])
      return x
  
file_path: towhee/towhee/models/vit/vit_block.py
imports: from torch import nn
  from towhee.models.layers.attention import MultiHeadAttention
  from towhee.models.layers.droppath import DropPath
  from towhee.models.layers.mlp import Mlp
  from towhee.models.layers.layers_with_relprop import GELU, LayerNorm, Add, Clone
label_desc: Use image node_id 2 for calling the Block obj's underlying member method code with example usage: obj.forward(x) and returns: x