code: def _make_dense_block(
      self,
      num_layers,
      in_planes,
      block_idx,
      growth_rate=32,
      expansion=4,
      use_se=False,
      se_reduction_ratio=16,
  ):
      assert is_pos_int(in_planes)
      assert is_pos_int(growth_rate)
      assert is_pos_int(expansion)
  
      # create a block of dense layers at same resolution:
      layers = OrderedDict()
      for idx in range(num_layers):
          layers[f"block{block_idx}-{idx}"] = _DenseLayer(
              in_planes + idx * growth_rate,
              growth_rate=growth_rate,
              expansion=expansion,
              use_se=use_se,
              se_reduction_ratio=se_reduction_ratio,
          )
      return nn.Sequential(layers)
  
imports: import math
  from collections import OrderedDict
  from typing import Any, Dict, Sequence
  import torch
  import torch.nn
  from classy_vision.generic.util import is_pos_int
  from .None import register_model
  from .classy_model import ClassyModel
  from .squeeze_and_excitation_layer import SqueezeAndExcitationLayer
label_desc: Use image node_id 3 for calling the DenseNet obj's underlying member method code with example usage: obj._make_dense_block(num_layers, in_planes, block_idx, growth_rate, expansion, use_se, se_reduction_ratio) and returns: nn