class_docstr: Base class for a forecaster model.
  
  .. note::
  
      If your model depends on an evenly spaced time series, make sure to
  
      1. Call `ForecasterBase.train_pre_process` in `ForecasterBase.train`
      2. Call `ForecasterBase.resample_time_stamps` at the start of
         `ForecasterBase.forecast` to get a set of resampled time stamps, and
         call ``time_series.align(reference=time_stamps)`` to align the forecast
         with the original time stamps.
class_docstr_tok: ["Base","class","for","a","forecaster","model",".","..","note",":",":","If","your","model","depends","on","an","evenly","spaced","time","series",",","make","sure","to","1",".","Call","`","ForecasterBase.train_pre_process","`","in","`","ForecasterBase.train","`","2",".","Call","`","ForecasterBase.resample_time_stamps","`","at","the","start","of","`","ForecasterBase.forecast","`","to","get","a","set","of","resampled","time","stamps",",","and","call","``","time_series.align","(","reference=time_stamps",")","``","to","align","the","forecast","with","the","original","time","stamps","."]
docstr: Converts the train result (forecast & stderr for training data) into TimeSeries objects, and inverts the
  model's transform if desired.
docstr_tok: ["Converts","the","train","result","(","forecast","&","stderr","for","training","data",")","into","TimeSeries","objects",",","and","inverts","the","model","'s","transform","if","desired","."]
code: def train_post_process(
      self,
      train_result: Tuple[
          Union[TimeSeries, pd.DataFrame],
          Optional[Union[TimeSeries, pd.DataFrame]],
      ],
  ) -> Tuple[TimeSeries, TimeSeries]:
      """
      Converts the train result (forecast & stderr for training data) into TimeSeries objects, and inverts the
      model's transform if desired.
      """
      return self._process_forecast(*train_result)
  
imports: from abc import abstractmethod
  import copy
  import logging
  from typing import List, Optional, Tuple, Union
  import numpy
  import pandas
  from scipy.stats import norm
  from merlion.models.base import Config, ModelBase
  from merlion.plot import Figure
  from merlion.transform.base import TransformBase
  from merlion.transform.factory import TransformFactory
  from merlion.transform.normalize import MeanVarNormalize
  from merlion.utils.time_series import to_pd_datetime, to_timestamp, TimeSeries, AggregationPolicy, MissingValuePolicy
label_desc: Use image node_id 10 for calling the ForecasterBase obj's underlying member method code with example usage: obj.train_post_process(train_result) and returns: self