docstr: Pass an input through a three-by-three convolution filter and
  test the shape and contents of the output.
docstr_tok: ["Pass","an","input","through","a","three-by-three","convolution","filter","and","test","the","shape","and","contents","of","the","output","."]
code: def test_on_conv2d_three_by_three(self):
      """
      Pass an input through a three-by-three convolution filter and
      test the shape and contents of the output.
      """
      w_init = lambda s: jn.array(
          [[[[1.0, 2.0, 1.0], [1.0, 2.0, 1.0], [1.0, 1.0, 1.0]]]]
      ).transpose((2, 3, 1, 0))
      conv = objax.nn.Conv2D(
          1, 1, 3, padding=objax.ConvPadding.VALID, w_init=w_init
      )
      x = jn.array(
          [
              [
                  [
                      [2.0, 1.0, 3.0, 4.0],
                      [5.0, 6.0, 7.0, 8.0],
                      [9.0, 10.0, 11.0, 12.0],
                      [13.0, 14.0, 15.0, 16.0],
                  ]
              ]
          ]
      )
      y = jn.array([[[[61.0, 72.0], [106.0, 117.0]]]])
      self.assertEqual(conv(x).tolist(), y.tolist())
  
file_path: objax/tests/conv.py
imports: import unittest
  import jax.numpy
  import objax
label_desc: Use image node_id 1 for calling the TestConv obj's underlying member method code with example usage: obj.test_on_conv2d_three_by_three() without return types