code: def __init__(
      self,
      num_out,
      ratio=4,
      act_func=("relu", "hard_sigmoid"),
      use_bn=False,
      prefix="",
      **kwargs,
  ):
      super(_SE, self).__init__(**kwargs)
      self.use_bn = use_bn
      num_mid = make_divisible(num_out // ratio)
      self.pool = nn.GlobalAvgPool2D()
      self.conv1 = nn.Conv2D(
          channels=num_mid,
          kernel_size=1,
          use_bias=True,
          prefix=("%s_fc1_" % prefix),
      )
      self.act1 = Activation(act_func[0])
      self.conv2 = nn.Conv2D(
          channels=num_out,
          kernel_size=1,
          use_bias=True,
          prefix=("%s_fc2_" % prefix),
      )
      self.act2 = Activation(act_func[1])
  
imports: from __future__ import division
  import numpy
  from mxnet.gluon import nn
  from mxnet.gluon.nn import BatchNorm
  from mxnet.gluon.block import HybridBlock
  from mxnet.context import cpu
  from ..nn import ReLU6, HardSigmoid, HardSwish
label_desc: Use image node_id 1 to create a new _SE object from inherited base classes: HybridBlock with example: obj = _SE(num_out, ratio, act_func, use_bn, prefix)