code: def mnist_model_large():
      """
      MNIST model with redundant layers for testing pruning algorithm
      """
      return nn.Sequential(
          OrderedDict(
              [
                  ("conv1", nn.Conv2d(1, 32, (5, 5), padding="same")),
                  ("relu1", nn.ReLU()),
                  ("pool1", nn.MaxPool2d(2, stride=2, padding=0)),
                  ("bn1", nn.BatchNorm2d(32, eps=0.001, momentum=0.01)),
                  ("conv2", nn.Conv2d(32, 64, (5, 5), padding="same")),
                  ("relu2", nn.ReLU()),
                  ("pool2", nn.MaxPool2d(2, stride=2, padding=0)),
                  ("conv3", nn.Conv2d(64, 64, (5, 5), padding="same")),
                  ("relu3", nn.ReLU()),
                  ("conv4", nn.Conv2d(64, 64, (5, 5), padding="same")),
                  ("relu4", nn.ReLU()),
                  ("flatten", nn.Flatten()),
                  ("dense1", nn.Linear(3136, 1024)),
                  ("relu5", nn.ReLU()),
                  ("dropout", nn.Dropout(p=0.4)),
                  ("dense2", nn.Linear(1024, num_classes)),
                  ("softmax", nn.LogSoftmax()),
              ]
          )
      )
  
file_path: coremltools/coremltools/test/optimize/torch/models/mnist.py
imports: import os
  from collections import OrderedDict
  from coremltools.test.optimize.torch.utils import test_data_path
  import pytest
  import torch.nn
  from filelock import FileLock
  from torchvision import datasets, transforms
label_desc: Use image node_id 3 for calling a global function with example usage: mnist_model_large() and returns: nn