docstr: make plugins for block.
  
  Args:
      in_channels (int): Input channels of plugin.
      plugins (list[dict]): List of plugins cfg to build.
  
  Returns:
      list[str]: List of the names of plugin.
docstr_tok: ["make","plugins","for","block",".","Args",":","in_channels","(","int",")",":","Input","channels","of","plugin",".","plugins","(","list","[","dict","]",")",":","List","of","plugins","cfg","to","build",".","Returns",":","list","[","str","]",":","List","of","the","names","of","plugin","."]
code: def make_block_plugins(self, in_channels, plugins):
      """make plugins for block.
  
      Args:
          in_channels (int): Input channels of plugin.
          plugins (list[dict]): List of plugins cfg to build.
  
      Returns:
          list[str]: List of the names of plugin.
      """
      assert isinstance(plugins, list)
      plugin_names = []
      for plugin in plugins:
          plugin = plugin.copy()
          name, layer = build_plugin_layer(
              plugin,
              in_channels=in_channels,
              postfix=plugin.pop("postfix", ""),
          )
          assert not hasattr(self, name), f"duplicate plugin {name}"
          self.add_module(name, layer)
          plugin_names.append(name)
      return plugin_names
  
imports: import warnings
  import torch.nn
  import torch.utils.checkpoint
  from mmcv.cnn import build_conv_layer, build_norm_layer, build_plugin_layer
  from mmengine.model import BaseModule
  from torch.nn.modules.batchnorm import _BatchNorm
  from mmdet.registry import MODELS
  from ..layers import ResLayer
label_desc: Use image node_id 2 for calling the Bottleneck obj's underlying member method code with example usage: obj.make_block_plugins(in_channels, plugins) and returns: plugin_names