code: def inject_new(self, Ymat_new, covariates_new=None, dti_new=None):
      if self.Ymat.shape[0] != Ymat_new.shape[0]:
          from bigdl.nano.utils.common import invalidInputError
  
          invalidInputError(
              False,
              "Expected incremental input with {} time series, got {} instead.".format(
                  self.Ymat.shape[0], Ymat_new.shape[0]
              ),
          )
      self.append_new_y(
          Ymat_new, covariates_new=covariates_new, dti_new=dti_new
      )
      n, T = self.Ymat.shape
      rank, XT = self.X.shape
      future = T - XT
      Xn = self.recover_future_X(
          last_step=XT,
          future=future,
          num_epochs=100000,
          alpha=0.3,
          vanilla=True,
      )
      self.X = torch.cat([self.X, Xn], dim=1)
  
imports: from __future__ import print_function
  import torch
  import numpy
  import pandas
  import torch.nn
  import torch.optim
  from torch.autograd import Variable
  from bigdl.chronos.model.tcmf.data_loader import TCMFDataLoader
  from bigdl.chronos.model.tcmf.local_model import TemporalConvNet, LocalModel
  from bigdl.chronos.model.tcmf.time import TimeCovariates
  import copy
  import pickle
  import logging
label_desc: Use image node_id 18 for calling the DeepGLO obj's underlying member method code with example usage: obj.inject_new(Ymat_new, covariates_new, dti_new) without return types