code: def train_conv():
      nn = Sequential(name="keras_conv_7x7_relu")
      nn.add(
          Conv2D(
              filters=1,
              kernel_size=(2, 2),
              activation="relu",
              data_format="channels_first",
              kernel_initializer=keras.initializers.RandomNormal(
                  mean=1.0, stddev=0.05, seed=62
              ),
              input_shape=(1, 7, 7),
          )
      )
      nn.compile(optimizer=Adamax(learning_rate=0.01), loss="mae")
      import tempfile
  
      import tf2onnx
  
      onnx_model, _ = tf2onnx.convert.from_keras(nn)
  
      input_bounds = dict()
      for i in range(7):
          for j in range(7):
              input_bounds[0, i, j] = (0.0, 1.0)
      with tempfile.NamedTemporaryFile(
          suffix=".onnx", delete=False
      ) as f:
          write_onnx_model_with_bounds(f.name, onnx_model, input_bounds)
          print(f"Wrote ONNX model with bounds at {f.name}")
  
file_path: OMLT/tests/neuralnet/train_keras_models.py
imports: import pytest
  import tensorflow.keras
  from keras.layers import Conv2D, Dense
  from keras.models import Model, Sequential
  from pyomo.common.fileutils import this_file_dir
  from tensorflow.keras.optimizers import Adamax
  from omlt.io import write_onnx_model_with_bounds
label_desc: Use image node_id 2 for calling a global function with example usage: train_conv() without return types