code: def test_save_load(tmpdir, local_backend):
      input_features = [
          number_feature(),
          category_feature(encoder={"reduce_output": "sum"}),
      ]
      output_features = [binary_feature()]
  
      init_preds, model = _train_and_predict_gbm(
          input_features, output_features, tmpdir, local_backend
      )
  
      # save model
      model.save(tmpdir)
  
      # load model
      model = LudwigModel.load(tmpdir)
      preds, _ = model.predict(
          dataset=os.path.join(tmpdir, "training.csv"), split="test"
      )
  
      assert init_preds.equals(preds)
  
imports: import os
  import numpy
  import pytest
  from ludwig.api import LudwigModel
  from ludwig.constants import INPUT_FEATURES, MODEL_TYPE, OUTPUT_FEATURES, TRAINER
  from ludwig.error import ConfigValidationError
  from ludwig.schema.model_types.base import ModelConfig
  from tests.integration_tests import synthetic_test_data
  from tests.integration_tests.utils import binary_feature
  from tests.integration_tests.utils import category_feature
  from tests.integration_tests.utils import generate_data, number_feature, text_feature
label_desc: Use image node_id 22 for calling a global function with example usage: test_save_load(tmpdir, local_backend) without return types