code: def _core_conv2d(self, **layer_kwargs):
      filters_in = 3
      batch_input_shape = [2, 6, 6, filters_in]  # channels last
      filters = 5
  
      if isinstance(layer_kwargs["kernel_size"], int):
          kernel_size_in = (layer_kwargs["kernel_size"],) * 2
      else:
          kernel_size_in = layer_kwargs["kernel_size"]
  
      kernel = np.random.normal(
          size=kernel_size_in + (filters_in, filters)
      )
      initializer = tf.keras.initializers.Constant(kernel)
  
      base_kwargs = {
          "filters": filters,
          "strides": 2,
          "kernel_initializer": initializer,
      }
  
      kwargs = {**base_kwargs, **layer_kwargs}
      agreement_test(
          tfe.keras.layers.Conv2D,
          kwargs=kwargs,
          batch_input_shape=batch_input_shape,
      )
      layer_test(
          tfe.keras.layers.Conv2D,
          kwargs=kwargs,
          batch_input_shape=batch_input_shape,
      )
  
imports: import unittest
  import numpy
  import pytest
  import tensorflow
  import tf_encrypted
  from tf_encrypted.keras.testing_utils import agreement_test
  from tf_encrypted.keras.testing_utils import layer_test
label_desc: Use image node_id 5 for calling the TestConv2d obj's underlying member method code with example usage: obj._core_conv2d() without return types