class_docstr: TFT Model
code: def predict(self, dataset):
      if self.model is None:
          raise ValueError("model is not fitted yet!")
      d_test = dataset.prepare("test", col_set=["feature", "label"])
      d_test = transform_df(d_test)
      d_test.loc[:, self.label_col] = get_shifted_label(
          d_test, shifts=self.label_shift, col_shift=self.label_col
      )
      test = process_qlib_data(
          d_test, self.expt_name, fillna=True
      ).dropna()
  
      use_gpu = (True, self.gpu_id)
      # ===========================Predicting Process===========================
      default_keras_session = tf.keras.backend.get_session()
  
      # Sets up default params
      fixed_params = self.data_formatter.get_experiment_params()
      params = self.data_formatter.get_default_model_params()
      params = {**params, **fixed_params}
  
      print("*** Begin predicting ***")
      tf.reset_default_graph()
  
      with self.tf_graph.as_default():
          tf.keras.backend.set_session(self.sess)
          output_map = self.model.predict(test, return_targets=True)
          targets = self.data_formatter.format_predictions(
              output_map["targets"]
          )
          p50_forecast = self.data_formatter.format_predictions(
              output_map["p50"]
          )
          p90_forecast = self.data_formatter.format_predictions(
              output_map["p90"]
          )
          tf.keras.backend.set_session(default_keras_session)
  
      predict50 = format_score(p50_forecast, "pred", 1)
      predict90 = format_score(p90_forecast, "pred", 1)
      predict = (predict50 + predict90) / 2  # self.label_shift
      # ===========================Predicting Process===========================
      return predict
  
imports: from pathlib import Path
  from typing import Union
  import numpy
  import pandas
  import tensorflow.compat.v1
  import data_formatters.base
  import expt_settings.configs
  import libs.hyperparam_opt
  import libs.tft_model
  import libs.utils
  import os
  import datetime
  from qlib.model.base import ModelFT
  from qlib.data.dataset import DatasetH
  from qlib.data.dataset.handler import DataHandlerLP
label_desc: Use image node_id 4 for calling the TFTModel obj's underlying member method code with example usage: obj.predict(dataset) and returns: predict