class_docstr: Example:
      >>> #The dataset is split into x_train, x_val, x_test, y_train, y_val, y_test
      >>> model = MTNetForecaster(target_dim=1,
                          feature_dim=x_train.shape[-1],
                          long_series_num=6,
                          series_length=2
                          )
      >>> x_train_long, x_train_short = model.preprocess_input(x_train)
      >>> x_val_long, x_val_short = model.preprocess_input(x_val)
      >>> x_test_long, x_test_short = model.preprocess_input(x_test)
      >>> model.fit([x_train_long, x_train_short],
            y_train,
            validation_data=([x_val_long, x_val_short], y_val),
            batch_size=32,
            distributed=False)
      >>> predict_result = [x_test_long, x_test_short]
class_docstr_tok: ["Example",":",">",">",">","#","The","dataset","is","split","into","x_train",",","x_val",",","x_test",",","y_train",",","y_val",",","y_test",">",">",">","model","=","MTNetForecaster","(","target_dim=1",",","feature_dim=x_train.shape","[","-1","]",",","long_series_num=6",",","series_length=2",")",">",">",">","x_train_long",",","x_train_short","=","model.preprocess_input","(","x_train",")",">",">",">","x_val_long",",","x_val_short","=","model.preprocess_input","(","x_val",")",">",">",">","x_test_long",",","x_test_short","=","model.preprocess_input","(","x_test",")",">",">",">","model.fit","(","[","x_train_long",",","x_train_short","]",",","y_train",",","validation_data=","(","[","x_val_long",",","x_val_short","]",",","y_val",")",",","batch_size=32",",","distributed=False",")",">",">",">","predict_result","=","[","x_test_long",",","x_test_short","]"]
docstr: The original rolled features needs an extra step to process.
  This should be called before train_x, validation_x, and test_x
  
  :param x: the original samples from rolling
  
  :return: a tuple (long_term_x, short_term_x) which are long term and short term
      history respectively
docstr_tok: ["The","original","rolled","features","needs","an","extra","step","to","process",".","This","should","be","called","before","train_x",",","validation_x",",","and","test_x",":","param","x",":","the","original","samples","from","rolling",":","return",":","a","tuple","(","long_term_x",",","short_term_x",")","which","are","long","term","and","short","term","history","respectively"]
code: def preprocess_input(self, x):
      """
      The original rolled features needs an extra step to process.
      This should be called before train_x, validation_x, and test_x
  
      :param x: the original samples from rolling
  
      :return: a tuple (long_term_x, short_term_x) which are long term and short term
          history respectively
      """
      return self.internal._reshape_input_x(x)
  
imports: from zoo.chronos.model.MTNet_keras import MTNetKeras
  from zoo.chronos.forecaster.tfpark_forecaster import TFParkForecaster
label_desc: Use image node_id 3 for calling the MTNetForecaster obj's underlying member method code with example usage: obj.preprocess_input(x) and returns: self