code: def conv(
      self,
      input,
      k_h,
      k_w,
      c_o,
      s_h,
      s_w,
      name,
      relu=True,
      relu_negative_slope=0.0,
      padding=None,
      dilation=1,
      group=1,
      biased=True,
  ):
      if padding is None:
          padding = [0, 0]
  
      # Get the number of channels in the input
      c_i, h_i, w_i = input.shape[1:]
  
      # Verify that the grouping parameter is valid
      assert c_i % group == 0
      assert c_o % group == 0
  
      fluid = import_fluid()
      prefix = name + "_"
      leaky_relu = False
      act = "relu"
      if relu is False:
          act = None
      elif relu_negative_slope != 0.0:
          leaky_relu = True
          act = None
  
      output = fluid.layers.conv2d(
          name=self.get_unique_output_name(name, "conv2d"),
          input=input,
          filter_size=[k_h, k_w],
          num_filters=c_o,
          stride=[s_h, s_w],
          padding=padding,
          dilation=dilation,
          groups=group,
          param_attr=fluid.ParamAttr(name=prefix + "weights"),
          bias_attr=fluid.ParamAttr(name=prefix + "biases"),
          act=act,
      )
  
      if leaky_relu:
          output = fluid.layers.leaky_relu(
              output, alpha=relu_negative_slope
          )
  
      return output
  
imports: from __future__ import print_function
  from builtins import str
  from past.builtins import basestring
  from builtins import object
  import sys
  import os
  import math
  import numpy
label_desc: Use image node_id 8 for calling the Network obj's underlying member method code with example usage: obj.conv(input, k_h, k_w, c_o, s_h, s_w, name, relu, relu_negative_slope, padding, dilation, group, biased) and returns: output