code: def _make_block(self, ba, block_idx, block_count):
      drop_path_rate = self.drop_path_rate * block_idx / block_count
      bt = ba.pop("block_type")
      ba["in_chs"] = self.in_chs
      ba["out_chs"] = self._round_channels(ba["out_chs"])
      if "fake_in_chs" in ba and ba["fake_in_chs"]:
          ba["fake_in_chs"] = self._round_channels(ba["fake_in_chs"])
      ba["norm_layer"] = self.norm_layer
      ba["norm_kwargs"] = self.norm_kwargs
      ba["pad_type"] = self.pad_type
      # block act fn overrides the model default
      ba["act_layer"] = (
          ba["act_layer"]
          if ba["act_layer"] is not None
          else self.act_layer
      )
      assert ba["act_layer"] is not None
      if bt == "ir":
          ba["drop_path_rate"] = drop_path_rate
          ba["se_kwargs"] = self.se_kwargs
          if self.verbose:
              self.logger.info(
                  "  InvertedResidual {}, Args: {}".format(
                      block_idx, str(ba)
                  )
              )
          block = InvertedResidual(**ba)
      elif bt == "ds" or bt == "dsa":
          ba["drop_path_rate"] = drop_path_rate
          ba["se_kwargs"] = self.se_kwargs
          if self.verbose:
              self.logger.info(
                  "  DepthwiseSeparable {}, Args: {}".format(
                      block_idx, str(ba)
                  )
              )
          block = DepthwiseSeparableConv(**ba)
      elif bt == "cn":
          if self.verbose:
              self.logger.info(
                  "  ConvBnAct {}, Args: {}".format(block_idx, str(ba))
              )
          block = ConvBnAct(**ba)
      else:
          assert False, (
              "Uknkown block type (%s) while building model." % bt
          )
      self.in_chs = ba["out_chs"]  # update in_chs for arg of next block
  
      return block
  
imports: from lib.utils.util import *
  from timm.models.efficientnet_blocks import *
label_desc: Use image node_id 3 for calling the ChildNetBuilder obj's underlying member method code with example usage: obj._make_block(ba, block_idx, block_count) and returns: block