code: def test_tcn_forecaster_save_load(self):
      train_data, _, test_data = create_data()
      self.forecaster.fit(train_data, epochs=2)
      yhat = self.forecaster.predict(test_data[0])
      with tempfile.TemporaryDirectory() as tmp_dir_file:
          tmp_dir_file = os.path.join(tmp_dir_file, "tcn.ckpt")
          self.forecaster.save(tmp_dir_file)
          self.forecaster.load(tmp_dir_file)
          from bigdl.chronos.model.tf2.TCN_keras import TemporalConvNet
  
          assert isinstance(self.forecaster.internal, TemporalConvNet)
      load_model_yhat = self.forecaster.predict(test_data[0])
      assert yhat.shape == (400, 2, 2)
      np.testing.assert_almost_equal(yhat, load_model_yhat, decimal=5)
  
imports: import pytest
  import tempfile
  import os
  from unittest import TestCase
  import numpy
  from bigdl.chronos.utils import LazyImport
  from test.bigdl.chronos import op_tf2, op_distributed, op_inference
label_desc: Use image node_id 7 for calling the TestTCNForecaster obj's underlying member method code with example usage: obj.test_tcn_forecaster_save_load() without return types