docstr: Make deconv layers.
docstr_tok: ["Make","deconv","layers","."]
code: def _make_deconv_layer(self, num_layers, num_filters, num_kernels):
      """Make deconv layers."""
      if num_layers != len(num_filters):
          error_msg = (
              f"num_layers({num_layers}) "
              f"!= length of num_filters({len(num_filters)})"
          )
          raise ValueError(error_msg)
      if num_layers != len(num_kernels):
          error_msg = (
              f"num_layers({num_layers}) "
              f"!= length of num_kernels({len(num_kernels)})"
          )
          raise ValueError(error_msg)
  
      layers = []
      for i in range(num_layers):
          kernel, padding, output_padding = self._get_deconv_cfg(
              num_kernels[i]
          )
  
          planes = num_filters[i]
          layers.append(
              ConvTranspose2d(
                  in_channels=self.in_channels,
                  out_channels=planes,
                  kernel_size=kernel,
                  stride=2,
                  padding=padding,
                  output_padding=output_padding,
                  bias=False,
              )
          )
          layers.append(nn.BatchNorm2D(planes))
          layers.append(nn.ReLU())
          self.in_channels = planes
  
      return nn.Sequential(*layers)
  
file_path: PaddleDetection/ppdet/modeling/heads/vitpose_head.py
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register
  from ppdet.modeling.keypoint_utils import resize, flip_back
  from paddle.nn.initializer import TruncatedNormal, Constant, Normal
  from ppdet.modeling.layers import ConvTranspose2d, BatchNorm2d
label_desc: Use image node_id 7 for calling the TopdownHeatmapSimpleHead obj's underlying member method code with example usage: obj._make_deconv_layer(num_layers, num_filters, num_kernels) and returns: nn