code: def export_keepdims() -> None:
      shape = [3, 2, 2]
      axes = np.array([1], dtype=np.int64)
      keepdims = 1
  
      node = onnx.helper.make_node(
          "ReduceMax",
          inputs=["data", "axes"],
          outputs=["reduced"],
          keepdims=keepdims,
      )
  
      data = np.array(
          [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]],
          dtype=np.float32,
      )
      reduced = np.maximum.reduce(
          data, axis=tuple(axes), keepdims=keepdims == 1
      )
      # print(reduced)
      # [[[20., 2.]]
      # [[40., 2.]]
      # [[60., 2.]]]
  
      expect(
          node,
          inputs=[data, axes],
          outputs=[reduced],
          name="test_reduce_max_keepdims_example",
          opset_imports=[onnx.helper.make_opsetid("", 18)],
      )
  
      np.random.seed(0)
      data = np.random.uniform(-10, 10, shape).astype(np.float32)
      reduced = np.maximum.reduce(
          data, axis=tuple(axes), keepdims=keepdims == 1
      )
  
      expect(
          node,
          inputs=[data, axes],
          outputs=[reduced],
          name="test_reduce_max_keepdims_random",
          opset_imports=[onnx.helper.make_opsetid("", 18)],
      )
  
file_path: onnx/onnx/backend/test/case/node/reducemax.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 ReduceMax obj's underlying member method code with example usage: obj.export_keepdims() without return types