code: def export_train() -> None:
      # input size: (2, 3, 4, 5)
      x = np.random.randn(2, 3, 4, 5).astype(np.float32)
      s = np.random.randn(3).astype(np.float32)
      bias = np.random.randn(3).astype(np.float32)
      mean = np.random.randn(3).astype(np.float32)
      var = np.random.rand(3).astype(np.float32)
      # using np.bool(1) while generating test data with "'bool' object has no attribute 'dtype'"
      # working around by using np.byte(1).astype(bool)
      training_mode = 1
      y, output_mean, output_var = _batchnorm_training_mode(
          x, s, bias, mean, var
      )
  
      node = onnx.helper.make_node(
          "BatchNormalization",
          inputs=["x", "s", "bias", "mean", "var"],
          outputs=["y", "output_mean", "output_var"],
          training_mode=training_mode,
      )
  
      # output size: (2, 3, 4, 5)
      expect(
          node,
          inputs=[x, s, bias, mean, var],
          outputs=[y, output_mean, output_var],
          name="test_batchnorm_example_training_mode",
      )
  
      # input size: (2, 3, 4, 5)
      x = np.random.randn(2, 3, 4, 5).astype(np.float32)
      s = np.random.randn(3).astype(np.float32)
      bias = np.random.randn(3).astype(np.float32)
      mean = np.random.randn(3).astype(np.float32)
      var = np.random.rand(3).astype(np.float32)
      training_mode = 1
      momentum = 0.9
      epsilon = 1e-2
      y, output_mean, output_var = _batchnorm_training_mode(
          x, s, bias, mean, var, momentum, epsilon
      )
  
      node = onnx.helper.make_node(
          "BatchNormalization",
          inputs=["x", "s", "bias", "mean", "var"],
          outputs=["y", "output_mean", "output_var"],
          epsilon=epsilon,
          training_mode=training_mode,
      )
  
      # output size: (2, 3, 4, 5)
      expect(
          node,
          inputs=[x, s, bias, mean, var],
          outputs=[y, output_mean, output_var],
          name="test_batchnorm_epsilon_training_mode",
      )
  
file_path: onnx/onnx/backend/test/case/node/batchnorm.py
imports: import numpy
  import onnx
  from onnx.backend.test.case.base import Base
  from onnx.backend.test.case.node import expect
label_desc: Use image node_id 2 for calling the BatchNormalization obj's underlying member method code with example usage: obj.export_train() without return types