Thanks for your help. I looked into the create_sqeezenet_ssd_lite() code below, do you think that ModuleList() causing the problem? If  yes, how do I fix this type of issue and enable the model created by this code deepcopyable? This type of model creation is typically used in a SSD  network creation. Does this imply QAT doesn’t work for SSD type of network? Thanks again for your help!

def create_squeezenet_ssd_lite(num_classes, is_test=False):
base_net = squeezenet1_1(False).features  # disable dropout layer
source_layer_indexes = [
    12
]
extras = ModuleList([
    Sequential(
        Conv2d(in_channels=512, out_channels=256, kernel_size=1),
        ReLU(),
        SeperableConv2d(in_channels=256, out_channels=512, kernel_size=3, stride=2, padding=2),
    ),
    Sequential(
        Conv2d(in_channels=512, out_channels=256, kernel_size=1),
        ReLU(),
        SeperableConv2d(in_channels=256, out_channels=512, kernel_size=3, stride=2, padding=1),
    ),
    Sequential(
        Conv2d(in_channels=512, out_channels=128, kernel_size=1),
        ReLU(),
        SeperableConv2d(in_channels=128, out_channels=256, kernel_size=3, stride=2, padding=1),
    ),
    Sequential(
        Conv2d(in_channels=256, out_channels=128, kernel_size=1),
        ReLU(),
        SeperableConv2d(in_channels=128, out_channels=256, kernel_size=3, stride=2, padding=1),
    ),
    Sequential(
        Conv2d(in_channels=256, out_channels=128, kernel_size=1),
        ReLU(),
        SeperableConv2d(in_channels=128, out_channels=256, kernel_size=3, stride=2, padding=1)
    )
])

regression_headers = ModuleList([
    SeperableConv2d(in_channels=512, out_channels=6 * 4, kernel_size=3, padding=1),
    SeperableConv2d(in_channels=512, out_channels=6 * 4, kernel_size=3, padding=1),
    SeperableConv2d(in_channels=512, out_channels=6 * 4, kernel_size=3, padding=1),
    SeperableConv2d(in_channels=256, out_channels=6 * 4, kernel_size=3, padding=1),
    SeperableConv2d(in_channels=256, out_channels=6 * 4, kernel_size=3, padding=1),
    Conv2d(in_channels=256, out_channels=6 * 4, kernel_size=1),
])

classification_headers = ModuleList([
    SeperableConv2d(in_channels=512, out_channels=6 * num_classes, kernel_size=3, padding=1),
    SeperableConv2d(in_channels=512, out_channels=6 * num_classes, kernel_size=3, padding=1),
    SeperableConv2d(in_channels=512, out_channels=6 * num_classes, kernel_size=3, padding=1),
    SeperableConv2d(in_channels=256, out_channels=6 * num_classes, kernel_size=3, padding=1),
    SeperableConv2d(in_channels=256, out_channels=6 * num_classes, kernel_size=3, padding=1),
    Conv2d(in_channels=256, out_channels=6 * num_classes, kernel_size=1),
])

return SSD(num_classes, base_net, source_layer_indexes,
           extras, classification_headers, regression_headers, is_test=is_test, config=config)