code: def generate_cnn_architectures():
      # pylint: disable=bad-whitespace
      """Generates 4 neural networks."""
      all_layer_label_classes = get_cnn_layer_labels()
      # Network 1
      layer_labels = [
          "ip",
          "op",
          "conv3",
          "fc",
          "conv3",
          "conv3",
          "conv3",
          "softmax",
          "max-pool",
      ]
      num_filters_each_layer = [
          None,
          None,
          32,
          16,
          16,
          8,
          8,
          None,
          None,
      ]
      A = get_dok_mat_with_set_coords(
          9,
          [
              (0, 4),
              (3, 7),
              (4, 5),
              (4, 6),
              (5, 2),
              (6, 2),
              (7, 1),
              (2, 8),
              (8, 3),
          ],
      )
      strides = [
          None if ll in ["ip", "op", "fc", "softmax", "max-pool"] else 1
          for ll in layer_labels
      ]
      cnn_1 = ConvNeuralNetwork(
          layer_labels,
          A,
          num_filters_each_layer,
          strides,
          all_layer_label_classes,
      )
      # Network 2
      layer_labels = [
          "ip",
          "conv3",
          "conv3",
          "conv3",
          "fc",
          "softmax",
          "op",
          "max-pool",
      ]
      num_filters_each_layer = [None, 16, 16, 32, 16, None, None, None]
      A = get_dok_mat_with_set_coords(
          8, [(0, 1), (1, 2), (2, 3), (4, 5), (5, 6), (3, 7), (7, 4)]
      )
      strides = [
          None if ll in ["ip", "op", "fc", "softmax", "max-pool"] else 1
          for ll in layer_labels
      ]
      cnn_2 = ConvNeuralNetwork(
          layer_labels,
          A,
          num_filters_each_layer,
          strides,
          all_layer_label_classes,
      )
      # Network 3
      layer_labels = [
          "ip",
          "conv3",
          "conv3",
          "conv5",
          "conv3",
          "max-pool",
          "fc",
          "softmax",
          "op",
      ]
      num_filters_each_layer = [
          None,
          16,
          16,
          16,
          32,
          None,
          32,
          None,
          None,
      ]
      A = get_dok_mat_with_set_coords(
          9,
          [
              (0, 1),
              (1, 2),
              (1, 3),
              (1, 4),
              (2, 5),
              (3, 5),
              (4, 6),
              (5, 6),
              (6, 7),
              (7, 8),
          ],
      )
      strides = [
          None if ll in ["ip", "op", "fc", "softmax", "max-pool"] else 1
          for ll in layer_labels
      ]
      strides[4] = 2
      cnn_3 = ConvNeuralNetwork(
          layer_labels,
          A,
          num_filters_each_layer,
          strides,
          all_layer_label_classes,
      )
      # Network 4
      layer_labels = [
          "ip",
          "conv3",
          "conv3",
          "conv5",
          "conv3",
          "avg-pool",
          "conv5",
          "fc",
          "softmax",
          "op",
      ]
      num_filters_each_layer = [
          None,
          16,
          16,
          16,
          32,
          None,
          32,
          32,
          None,
          None,
      ]
      A = get_dok_mat_with_set_coords(
          10,
          [
              (0, 1),
              (1, 2),
              (1, 3),
              (1, 4),
              (2, 5),
              (3, 5),
              (4, 6),
              (5, 7),
              (6, 7),
              (7, 8),
              (8, 9),
          ],
      )
      strides = [
          None
          if ll in ["ip", "op", "fc", "softmax", "max-pool", "avg-pool"]
          else 1
          for ll in layer_labels
      ]
      strides[4] = 2
      cnn_4 = ConvNeuralNetwork(
          layer_labels,
          A,
          num_filters_each_layer,
          strides,
          all_layer_label_classes,
      )
      # Network 5
      layer_labels = [
          "ip",
          "conv3",
          "conv3",
          "conv5",
          "conv5",
          "avg-pool",
          "fc",
          "softmax",
          "op",
          "conv3",
      ]
      num_filters_each_layer = [
          None,
          16,
          16,
          16,
          32,
          None,
          32,
          None,
          None,
          16,
      ]
      A = get_dok_mat_with_set_coords(
          10,
          [
              (0, 1),
              (1, 2),
              (1, 3),
              (2, 5),
              (3, 5),
              (4, 6),
              (5, 6),
              (6, 7),
              (7, 8),
              (0, 9),
              (9, 4),
          ],
      )
      strides = [
          None if ll in ["ip", "op", "fc", "softmax", "avg-pool"] else 1
          for ll in layer_labels
      ]
      strides[4] = 2
      cnn_5 = ConvNeuralNetwork(
          layer_labels,
          A,
          num_filters_each_layer,
          strides,
          all_layer_label_classes,
      )
      # Network 6
      layer_labels = [
          "ip",
          "conv3",
          "conv3",
          "conv3",
          "fc",
          "fc",
          "op",
          "max-pool",
          "fc",
          "softmax",
      ]
      num_filters_each_layer = [
          None,
          16,
          16,
          32,
          32,
          32,
          None,
          None,
          32,
          None,
      ]
      A = get_dok_mat_with_set_coords(
          10,
          [
              (0, 1),
              (1, 2),
              (2, 3),
              (4, 5),
              (5, 9),
              (3, 7),
              (7, 4),
              (4, 8),
              (8, 9),
              (9, 6),
          ],
      )
      strides = [
          None if ll in ["ip", "op", "fc", "softmax", "max-pool"] else 1
          for ll in layer_labels
      ]
      cnn_6 = ConvNeuralNetwork(
          layer_labels,
          A,
          num_filters_each_layer,
          strides,
          all_layer_label_classes,
      )
      # Network 7 - Two softmax layers both pointing to output
      layer_labels = [
          "ip",
          "conv3",
          "conv3",
          "conv3",
          "fc",
          "fc",
          "op",
          "max-pool",
          "fc",
          "softmax",
          "softmax",
      ]
      num_filters_each_layer = [
          None,
          16,
          16,
          32,
          32,
          32,
          None,
          None,
          32,
          None,
          None,
      ]
      A = get_dok_mat_with_set_coords(
          11,
          [
              (0, 1),
              (1, 2),
              (2, 3),
              (4, 5),
              (5, 9),
              (3, 7),
              (7, 4),
              (4, 8),
              (8, 9),
              (9, 6),
              (8, 10),
              (10, 6),
          ],
      )
      strides = [
          None if ll in ["ip", "op", "fc", "softmax", "max-pool"] else 1
          for ll in layer_labels
      ]
      cnn_7 = ConvNeuralNetwork(
          layer_labels,
          A,
          num_filters_each_layer,
          strides,
          all_layer_label_classes,
      )
  
      return [
          cnn_1,
          cnn_2,
          cnn_3,
          cnn_4,
          cnn_5,
          cnn_6,
          cnn_7,
          get_vgg_net(2),
          get_blocked_cnn(3, 4, 1),
          get_resnet_cnn(3, 2, 1),
          get_multidepth_cnn_eg1(),
          get_multidepth_cnn_eg2(),
      ]
  
imports: import numpy
  from scipy.sparse import dok_matrix
  from .neural_network import ConvNeuralNetwork, MultiLayerPerceptron, get_cnn_layer_labels, get_mlp_layer_labels, is_a_conv_layer_label
  from .nn_modifiers import NNModifier
  from ..utils.general_utils import get_dok_mat_with_set_coords
label_desc: Use image node_id 14 for calling a global function with example usage: generate_cnn_architectures() and returns: list