code: def __init__(self, params: OperationParameters):
      super().__init__(params)
      self.device = self._get_device()
      self.model = CGRUNetwork(
          hidden_size=int(params.get("hidden_size")),
          cnn1_kernel_size=int(params.get("cnn1_kernel_size")),
          cnn1_output_size=int(params.get("cnn1_output_size")),
          cnn2_kernel_size=int(params.get("cnn2_kernel_size")),
          cnn2_output_size=int(params.get("cnn2_output_size")),
      )
  
      self.optim_dict = {
          "adamw": torch.optim.AdamW(
              self.model.parameters(), lr=self.learning_rate
          ),
          "sgd": torch.optim.SGD(
              self.model.parameters(), lr=self.learning_rate
          ),
      }
  
      self.loss_dict = {"mae": nn.L1Loss, "mse": nn.MSELoss}
      self.mu = None
      self.std = None
      self.optimizer = self.optim_dict[params.get("optimizer")]
      self.criterion = self.loss_dict[params.get("loss")]()
      self.scheduler = MultiStepLR(
          self.optimizer, milestones=[30, 80], gamma=0.5
      )
      self.seed = None
  
imports: import numpy
  from golem.utilities.requirements_notificator import warn_requirement
  from fedot.core.data.data import InputData
  from fedot.core.operations.evaluation.operation_implementations.implementation_interfaces import ModelImplementation
  from fedot.core.operations.operation_parameters import OperationParameters
  from fedot.core.repository.dataset_types import DataTypesEnum
label_desc: Use image node_id 1 to create a new CGRUImplementation object from inherited base classes: ModelImplementation with example: obj = CGRUImplementation(params)