code: def test_torch_models_retrain(self):
      model1 = BlockRNNModel(
          input_chunk_length=12,
          output_chunk_length=1,
          random_state=0,
          n_epochs=2,
          **tfm_kwargs,
      )
      model2 = BlockRNNModel(
          input_chunk_length=12,
          output_chunk_length=1,
          random_state=0,
          n_epochs=2,
          **tfm_kwargs,
      )
  
      ensemble = RegressionEnsembleModel([model1], 5)
      # forecasting model is retrained from scratch with the entire series once the regression model is trained
      ensemble.fit(self.combined)
      model1_fitted = ensemble.forecasting_models[0]
      forecast1 = model1_fitted.predict(3)
      # train torch model outside of ensemble model
      model2.fit(self.combined)
      forecast2 = model2.predict(3)
  
      assert model1_fitted.training_series.time_index.equals(
          model2.training_series.time_index
      )
      assert forecast1.time_index.equals(forecast2.time_index)
      np.testing.assert_array_almost_equal(
          forecast1.values(), forecast2.values()
      )
  
imports: from typing import List, Union
  import numpy
  import pandas
  import pytest
  from sklearn.ensemble import RandomForestRegressor
  from sklearn.linear_model import LinearRegression
  from darts import TimeSeries
  from darts.logging import get_logger
  from darts.metrics import mape, rmse
  from darts.models import LinearRegressionModel, NaiveDrift, NaiveSeasonal, RandomForest, RegressionEnsembleModel, RegressionModel, Theta
  from darts.tests.conftest import tfm_kwargs
  from darts.tests.models.forecasting.test_ensemble_models import _make_ts
  from darts.tests.models.forecasting.test_regression_models import train_test_split
  from darts.utils import timeseries_generation
label_desc: Use image node_id 8 for calling the TestRegressionEnsembleModels obj's underlying member method code with example usage: obj.test_torch_models_retrain() without return types