code: def __init__(self, params: Optional[OperationParameters] = None):
      super().__init__(params)
  
      default_params = {
          "log": default_log(prefix=__name__),
          "epochs": 10,
          "batch_size": 32,
          "output_mode": "labels",
          "architecture_type": "simplified",
          "optimizer_parameters": {
              "loss": "categorical_crossentropy",
              "optimizer": "adam",
              "metrics": ["accuracy"],
          },
      }
  
      complete_params = {**default_params, **self.params.to_dict()}
      self.params.update(**complete_params)
  
imports: import logging
  import os
  from typing import Optional
  import numpy
  from golem.utilities.requirements_notificator import warn_requirement
  from fedot.core.operations.operation_parameters import OperationParameters
  from fedot.core.data.data import InputData, OutputData
  from golem.core.log import LoggerAdapter, default_log
  from fedot.core.operations.evaluation.operation_implementations.implementation_interfaces import ModelImplementation
  from sklearn import preprocessing
label_desc: Use image node_id 1 to create a new FedotCNNImplementation object from inherited base classes: ModelImplementation with example: obj = FedotCNNImplementation(params)