code: def test_predict_with_uncertainty(
      self,
  ):
      future_seq_len = np.random.randint(2, 6)
      x_train, y_train = self.feat._roll_train(
          self.train_data,
          past_seq_len=self.past_seq_len,
          future_seq_len=future_seq_len,
      )
      x_test = self.feat._roll_test(
          self.test_data, past_seq_len=self.past_seq_len
      )
      model = LSTMSeq2Seq(future_seq_len=future_seq_len)
      model.fit_eval((x_train, y_train), mc=True, **self.config)
  
      prediction, uncertainty = model.predict_with_uncertainty(
          x_test, n_iter=2
      )
      assert prediction.shape == (x_test.shape[0], future_seq_len)
      assert uncertainty.shape == (x_test.shape[0], future_seq_len)
      assert np.any(uncertainty)
  
      new_model = LSTMSeq2Seq()
  
      ckpt = os.path.join("/tmp", "seq2seq.ckpt")
      model.save(ckpt)
      new_model.restore(ckpt)
      (
          prediction_after,
          uncertainty_after,
      ) = new_model.predict_with_uncertainty(x_test, n_iter=2)
      assert prediction_after.shape == (x_test.shape[0], future_seq_len)
      assert uncertainty_after.shape == (
          x_test.shape[0],
          future_seq_len,
      )
      assert np.any(uncertainty_after)
  
      os.remove(ckpt)
  
imports: import os
  import shutil
  import tempfile
  import pytest
  from test.zoo.pipeline.utils.test_utils import ZooTestCase
  from zoo.chronos.model.Seq2Seq import LSTMSeq2Seq
  from zoo.chronos.autots.deprecated.feature.time_sequence import TimeSequenceFeatureTransformer
  from numpy.testing import assert_array_almost_equal
  import pandas
  import numpy
label_desc: Use image node_id 12 for calling the TestSeq2Seq obj's underlying member method code with example usage: obj.test_predict_with_uncertainty() without return types