code: def fit(self):
      # print("ESTIMATE_RNN_MODEL_START" , self.mCycleResidueName);
      from keras import callbacks
  
      self.build_RNN_Architecture()
  
      # print("ESTIMATE_RNN_MODEL_STEP1" , self.mOutName);
  
      series = self.mCycleResidueName
      self.mTime = self.mTimeInfo.mTime
      self.mSignal = self.mTimeInfo.mSignal
      lAREstimFrame = self.mSplit.getEstimPart(self.mARFrame)
  
      # print("ESTIMATE_RNN_MODEL_STEP2" , self.mOutName);
  
      # print("mAREstimFrame columns :" , self.mAREstimFrame.columns);
      lARInputs = lAREstimFrame[self.mInputNames].values
      lARTarget = lAREstimFrame[series].values
      # print(len(self.mInputNames), lARInputs.shape , lARTarget.shape)
      assert lARInputs.shape[1] > 0
      assert lARTarget.shape[0] > 0
  
      # print("ESTIMATE_RNN_MODEL_STEP3" , self.mOutName);
  
      lARInputs = self.reshape_inputs(lARInputs)
      lARTarget = self.reshape_target(lARTarget)
  
      N = lARInputs.shape[0]
      NEstim = (N * 4) // 5
      estimX = lARInputs[0:NEstim]
      estimY = lARTarget[0:NEstim]
      valX = lARInputs[NEstim:]
      valY = lARTarget[NEstim:]
  
      # print("SHAPES" , self.mFormula, estimX.shape , estimY.shape)
  
      # print("ESTIMATE_RNN_MODEL_STEP4" , self.mOutName);
  
      lStopCallback = callbacks.EarlyStopping(
          monitor="val_loss", patience=5, verbose=0, mode="auto"
      )
      lHistory = self.mModel.fit(
          estimX,
          estimY,
          epochs=self.mNbEpochs,
          batch_size=1,
          validation_data=(valX, valY),
          verbose=0,
          callbacks=[lStopCallback],
      )
      # print(lHistory.__dict__)
  
      # print("ESTIMATE_RNN_MODEL_STEP5" , self.mOutName);
  
      lFullARInputs = self.mARFrame[self.mInputNames].values
      lFullARInputs = self.reshape_inputs(lFullARInputs)
  
      # print("ESTIMATE_RNN_MODEL_STEP6" , self.mOutName);
  
      lPredicted = self.mModel.predict(lFullARInputs)
      # print("PREDICTED_SHAPE" , self.mARFrame.shape, lPredicted.shape);
  
      # print("ESTIMATE_RNN_MODEL_STEP7" , self.mOutName);
  
      self.mARFrame[self.mOutName] = np.reshape(
          lPredicted, (lPredicted.shape[0])
      )
  
      # print("ESTIMATE_RNN_MODEL_STEP8" , self.mOutName);
  
      self.mARFrame[self.mOutName + "_residue"] = (
          self.mARFrame[series] - self.mARFrame[self.mOutName]
      )
  
imports: import numpy
  import pandas
  from .None import SignalDecomposition_AR
  import sys
label_desc: Use image node_id 5 for calling the cAbstract_RNN_Model obj's underlying member method code with example usage: obj.fit() without return types