code: def __init__(
      self, case, mode, device, dtype, kernel_size, N, iC, H, W, oC
  ):
      super().__init__(mode, device, dtype)
      self.case = case
      self.kernel_size = kernel_size
      self.N = N
      self.iC = iC
      self.H = H
      self.W = W
      self.oC = oC
      self.data = self.rand(
          [N, iC, H, W], device=device, requires_grad=self.requires_grad
      )
      if case == "conv":
          self.groups = 1
      elif case == "depthwise_conv":
          self.groups = iC
      else:
          raise ValueError(f"invalid case: {case}")
  
      self.conv = self.conv2d_layer(
          iC, oC, kernel_size, groups=self.groups
      )
      if device != "cpu":
          self.to_device(self.conv, device)
  
file_path: pytorch/benchmarks/tensorexpr/conv.py
imports: from .None import benchmark
label_desc: Use image node_id 1 to create a new ConvImplBench object from inherited base classes: benchmark with example: obj = ConvImplBench(case, mode, device, dtype, kernel_size, N, iC, H, W, oC)