code: def create_deep_cnn(input_shape: tuple, num_classes: int):
      model = tf.keras.Sequential(
          [
              tf.keras.layers.InputLayer(input_shape=input_shape),
              tf.keras.layers.Conv2D(
                  32, kernel_size=(3, 3), activation="relu"
              ),
              tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
              tf.keras.layers.Conv2D(
                  64, kernel_size=(3, 3), activation="relu"
              ),
              tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
              tf.keras.layers.Conv2D(
                  128, kernel_size=(3, 3), activation="relu"
              ),
              tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
              tf.keras.layers.Flatten(),
              tf.keras.layers.Dropout(0.5),
              tf.keras.layers.Dense(num_classes, activation="softmax"),
          ]
      )
      return model
  
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 2 for calling a global function with example usage: create_deep_cnn(input_shape, num_classes) and returns: model