code: def __init__(
      self,
      in_features=512,
      out_features=4096,
      kernel_size=7,
      mlp_ratio=1.0,
      drop_rate: float = 0.2,
      act_layer: nn.Module = None,
      conv_layer: nn.Module = None,
  ):
      super(ConvMlp, self).__init__()
      self.input_kernel_size = kernel_size
      mid_features = int(out_features * mlp_ratio)
      self.fc1 = conv_layer(
          in_features, mid_features, kernel_size, bias=True
      )
      self.act1 = act_layer(True)
      self.drop = nn.Dropout(drop_rate)
      self.fc2 = conv_layer(mid_features, out_features, 1, bias=True)
      self.act2 = act_layer(True)
  
imports: from typing import Union, List, Dict, Any, cast
  import torch
  import torch.nn
  import torch.nn.functional
  from timm.data import IMAGENET_DEFAULT_MEAN, IMAGENET_DEFAULT_STD
  from timm.layers import ClassifierHead
  from ._builder import build_model_with_cfg
  from ._features_fx import register_notrace_module
  from ._registry import register_model, generate_default_cfgs
label_desc: Use image node_id 1 to create a new ConvMlp object from inherited base classes: nn with example: obj = ConvMlp(in_features, out_features, kernel_size, mlp_ratio, drop_rate, act_layer, conv_layer)