This is the model architecture:
class Net(nn.Module):
    def __init__(self, n_classes=4, l1=5, l2=6):
        super(Net, self).__init__()
        resnet = torchvision.models.resnet152(pretrained=True)
        num_features = resnet.fc.in_features
        feature_extractor = nn.Sequential(*list(resnet.children())[:l1])
        feature_extractor_trainable = nn.Sequential(*list(resnet.children())[l1:l2])
        for param in feature_extractor.parameters():
            param.requires_grad = False
        self.feature_extractor = feature_extractor
        self.feature_extractor_trainable = feature_extractor_trainable
        self.conv = nn.Sequential(*list(resnet.children())[l2:-1])
        self.classifier = nn.Linear(num_features, n_classes)

    def forward(self, inputs):
        pre_img_features = self.feature_extractor(inputs[:,:3,:,:])
        post_img_features = self.feature_extractor(inputs[:,3:,:,:])
        pre_img_features = self.feature_extractor_trainable(pre_img_features)
        post_img_features = self.feature_extractor_trainable(post_img_features)
        out = post_img_features - pre_img_features
        del pre_img_features, post_img_features
        out = self.conv(out)
        out = torch.squeeze(out)
        out = self.classifier(out)
        return out