code: def test_lstm_save_load(self):
      train_data, val_data, test_data = create_data()
      model = model_creator(
          config={
              "input_feature_num": 4,
              "output_feature_num": test_data[-1].shape[-1],
          }
      )
  
      model.fit(
          train_data[0],
          train_data[1],
          epochs=2,
          validation_data=val_data,
      )
      with tempfile.TemporaryDirectory() as tmp_dir_file:
          model.save(tmp_dir_file)
          import keras
  
          restore_model = keras.models.load_model(
              tmp_dir_file, custom_objects={"LSTMModel": LSTMModel}
          )
      model_res = model.evaluate(test_data[0], test_data[1])
      restore_model_res = restore_model.evaluate(
          test_data[0], test_data[1]
      )
      np.testing.assert_almost_equal(
          model_res, restore_model_res, decimal=5
      )
      temp_LSTMModel = LSTMModel(
          input_dim=4,
          hidden_dim=[32, 32],
          layer_num=2,
          dropout=[0.2, 0.2],
          output_dim=test_data[-1].shape[-1],
      ).__class__
      assert isinstance(restore_model, temp_LSTMModel)
  
file_path: BigDL/python/chronos/test/bigdl/chronos/model/tf2/test_VanillaLSTM_keras.py
imports: import pytest
  from unittest import TestCase
  from ...None import op_tf2
  import numpy
  import tempfile
  import os
  from bigdl.chronos.utils import LazyImport
label_desc: Use image node_id 4 for calling the TestVanillaLSTM obj's underlying member method code with example usage: obj.test_lstm_save_load() without return types