class_docstr: Layer constructor function for a general convolution layer.
code: def __init__(
      self,
      filters,
      kernel_size,
      strides=None,
      padding="VALID",
      dimension_numbers=("NHWC", "HWIO", "NHWC"),
      kernel_initializer=None,
      bias_initializer=init.RandomNormalInitializer(1e-6),
      use_bias=True,
  ):
      super().__init__()
      self._filters = filters
      self._kernel_size = kernel_size
      self._padding = padding
      self._dimension_numbers = dimension_numbers
      self._lhs_spec, self._rhs_spec, self._out_spec = dimension_numbers
      self._one = (1,) * len(kernel_size)
      self._strides = strides or self._one
      self._bias_initializer = bias_initializer
      self._use_bias = use_bias
      rhs_spec = self._rhs_spec
      self._kernel_initializer = kernel_initializer
      if kernel_initializer is None:
          self._kernel_initializer = init.GlorotNormalInitializer(
              rhs_spec.index("O"), rhs_spec.index("I")
          )
  
imports: import functools
  import itertools
  import operator
  from trax import fastmath
  from trax.fastmath import numpy
  from trax.layers import base
  from trax.layers import initializers
label_desc: Use image node_id 1 to create a new Conv object from inherited base classes: base with example: obj = Conv(filters, kernel_size, strides, padding, dimension_numbers, kernel_initializer, bias_initializer, use_bias)