class_docstr: Dynamic ReLU.
class_docstr_tok: ["Dynamic","ReLU","."]
code: def __init__(
      self, in_channels: int, out_channels: int, expand_ratio: int = 4
  ):
      super().__init__()
      self.avg_pool = nn.AdaptiveAvgPool2d(1)
      self.expand_ratio = expand_ratio
      self.out_channels = out_channels
  
      self.fc = nn.Sequential(
          nn.Linear(in_channels, in_channels // expand_ratio),
          nn.ReLU(inplace=True),
          nn.Linear(
              in_channels // expand_ratio,
              out_channels * self.expand_ratio,
          ),
          nn.Hardsigmoid(inplace=True),
      )
  
imports: import copy
  import math
  from typing import Callable, List, Optional, Sequence, Tuple, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from mmcv.cnn import Scale
  from mmcv.ops.modulated_deform_conv import ModulatedDeformConv2d
  from mmengine.config import ConfigDict
  from mmengine.model import BaseModel
  from mmengine.structures import InstanceData
  from torch import Tensor
  from mmdet.registry import MODELS
  from mmdet.structures.bbox import cat_boxes
  from mmdet.utils import InstanceList, OptInstanceList, reduce_mean
  from ..utils import BertEncoderLayer, VLFuse, filter_scores_and_topk, permute_and_flatten, select_single_mlvl, unpack_gt_instances
  from ..utils.vlfuse_helper import MAX_CLAMP_VALUE
  from .atss_head import ATSSHead
label_desc: Use image node_id 1 to create a new DyReLU object from inherited base classes: nn with example: obj = DyReLU(in_channels, out_channels, expand_ratio)