code: def __init__(
      self,
      in_planes,
      out_planes,
      kernel_size,
      stride=1,
      padding=0,
      dilation=1,
      groups=1,
      relu=True,
      bn=True,
      bias_attr=False,
  ):
      super(BasicConv, self).__init__()
      self.out_channels = out_planes
      self.conv = nn.Conv2D(
          in_planes,
          out_planes,
          kernel_size=kernel_size,
          stride=stride,
          padding=padding,
          dilation=dilation,
          groups=groups,
          bias_attr=bias_attr,
      )
      self.bn = (
          nn.BatchNorm2D(
              out_planes,
              epsilon=1e-5,
              momentum=0.01,
              weight_attr=False,
              bias_attr=False,
          )
          if bn
          else None
      )
      self.relu = nn.ReLU() if relu else None
  
imports: import numpy
  import math
  import paddle
  import paddle.nn
  from paddle import ParamAttr
  from paddle.nn.initializer import Uniform
  import paddle.nn.functional
  from ppdet.core.workspace import register, serializable
  from ppdet.modeling.layers import ConvNormLayer
  from ppdet.modeling.backbones.hardnet import ConvLayer, HarDBlock
  from ..shape_spec import ShapeSpec
label_desc: Use image node_id 1 to create a new BasicConv object from inherited base classes: nn with example: obj = BasicConv(in_planes, out_planes, kernel_size, stride, padding, dilation, groups, relu, bn, bias_attr)