code: def test_softmax(
      backend,
      strategy,
      generate_data,
      input_bits,
      input_shape,
      table_bits,
      io_type,
  ):
      X = generate_data
      model = tf.keras.models.Sequential()
      model.add(
          tf.keras.layers.Activation(
              input_shape=input_shape,
              activation="softmax",
              name="softmax",
          )
      )
      model.compile()
  
      table_type = f"fixed<{table_bits}, RND, SAT>"
  
      cfg = hls4ml.utils.config_from_keras_model(
          model, granularity="name"
      )
      cfg["LayerName"]["softmax"]["Strategy"] = strategy
      cfg["LayerName"]["softmax"]["inv_table_t"] = table_type
      cfg["LayerName"]["softmax"]["exp_table_t"] = table_type
      cfg["LayerName"]["softmax_input"]["Precision"][
          "result"
      ] = f"fixed<{input_bits}>"
  
      odir = str(
          test_root_path
          / f"hls4mlprj_softmax_{backend}_{io_type}_{strategy}_{input_shape}_input-bits={input_bits}_table-bits={table_bits}"
      )
      hls_model = hls4ml.converters.convert_from_keras_model(
          model,
          hls_config=cfg,
          io_type=io_type,
          output_dir=odir,
          backend=backend,
      )
      hls_model.compile()
  
      y_keras = model.predict(X)
      y_hls4ml = hls_model.predict(X).reshape(y_keras.shape)
      acc_hls4ml = accuracy_score(
          np.argmax(y_keras, axis=-1).ravel(),
          np.argmax(y_hls4ml, axis=-1).ravel(),
      )
  
      print(f"Accuracy hls4ml relative to keras: {acc_hls4ml}")
  
      assert acc_hls4ml >= 0.98
  
file_path: hls4ml/test/pytest/test_softmax.py
imports: from pathlib import Path
  import numpy
  import pytest
  import tensorflow
  from sklearn.metrics import accuracy_score
  import hls4ml
label_desc: Use image node_id 2 for calling a global function with example usage: test_softmax(backend, strategy, generate_data, input_bits, input_shape, table_bits, io_type) without return types