code: def forward(self, x):
      # no constraint for generic arch.
      x = super(GenericBlock, self).forward(x)
  
      theta_b = self.theta_b_fc(x)
      theta_f = self.theta_f_fc(x)
  
      backcast = self.backcast_fc(theta_b)  # generic. 3.3.
      forecast = self.forecast_fc(theta_f)  # generic. 3.3.
  
      return backcast, forecast
  
imports: import pickle
  import random
  from time import time
  from typing import Union
  import numpy
  import torch
  from torch import nn, optim
  from torch.nn import functional
  from torch.nn.functional import mse_loss, l1_loss, binary_cross_entropy, cross_entropy
  from torch.optim import Optimizer
  from .utils import PYTORCH_REGRESSION_LOSS_MAP
  from pytorch_lightning import seed_everything
label_desc: Use image node_id 2 for calling the GenericBlock obj's underlying member method code with example usage: obj.forward(x) and returns: backcast,  forecast