code: def __init__(
      self,
      input_channels,
      output_channels,
      conv_op=nn.Conv2D,
      conv_kwargs=None,
      norm_op=nn.BatchNorm2D,
      norm_op_kwargs=None,
      dropout_op=nn.Dropout2D,
      dropout_op_kwargs=None,
      nonlin=nn.LeakyReLU,
      nonlin_kwargs=None,
  ):
      super().__init__()
      if nonlin_kwargs is None:
          nonlin_kwargs = {"negative_slope": 1e-2}
      if dropout_op_kwargs is None:
          dropout_op_kwargs = {"p": 0.5}
      if norm_op_kwargs is None:
          norm_op_kwargs = {"eps": 1e-5}
      if conv_kwargs is None:
          conv_kwargs = {
              "kernel_size": 3,
              "stride": 1,
              "padding": 1,
              "dilation": 1,
              "bias_attr": True,
          }
  
      self.nonlin_kwargs = nonlin_kwargs
      self.nonlin = nonlin
      self.dropout_op = dropout_op
      self.dropout_op_kwargs = dropout_op_kwargs
      self.norm_op_kwargs = norm_op_kwargs
      self.conv_kwargs = conv_kwargs
      self.conv_op = conv_op
      self.norm_op = norm_op
  
      self.conv = self.conv_op(
          input_channels, output_channels, **self.conv_kwargs
      )
      if (
          self.dropout_op is not None
          and self.dropout_op_kwargs["p"] is not None
          and self.dropout_op_kwargs["p"] > 0
      ):
          self.dropout = self.dropout_op(**self.dropout_op_kwargs)
      else:
          self.dropout = None
      self.instnorm = self.norm_op(
          output_channels, **self.norm_op_kwargs
      )
      self.lrelu = self.nonlin(**self.nonlin_kwargs)
  
file_path: PaddleSeg/contrib/MedicalSeg/medicalseg/models/layers/layer_libs.py
imports: import os
  import paddle
  import paddle.nn
label_desc: Use image node_id 1 to create a new ConvDropoutNormNonlin object from inherited base classes: nn with example: obj = ConvDropoutNormNonlin(input_channels, output_channels, conv_op, conv_kwargs, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs, nonlin, nonlin_kwargs)