Transfer weights of pretrained model to a different one

I have a model that is a concatination of pretraind vgg16 and a similar one with different kernel size. Is there a way to transfer the weights of the pretrained network to the other one so that network 2 don’t start training from 0? I want to use this network as feature extraction in transfer learning

This is the structure of the whole network:

Model Structure:

class Detector(nn.Module):
    def __init__(self):
        super(Detector, self).__init__()

Pretrained VGG16: Kernel Size = 3*3

    self.base = torchvision.models.vgg16(pretrained=True).features

New Network: Kernel Size = 5*5

    self.conv_1a = nn.Conv2d(3, 64, kernel_size=5, stride=1, padding=1)
    self.conv_1b = nn.Conv2d(64, 64, kernel_size=5, stride=1, padding=1)

    self.conv_2a = nn.Conv2d(64, 128, kernel_size=5, stride=1, padding=1)
    self.conv_2b = nn.Conv2d(128, 128, kernel_size=5, stride=1, padding=1)
    self.conv_2c = nn.Conv2d(128, 128, kernel_size=5, stride=1, padding=1)

    self.conv_3a = nn.Conv2d(128, 256, kernel_size=5, stride=1, padding=1)
    self.conv_3b = nn.Conv2d(256, 256, kernel_size=5, stride=1, padding=1)
    self.conv_3c = nn.Conv2d(256, 256, kernel_size=5, stride=1, padding=1)
    self.conv_3d = nn.Conv2d(256, 256, kernel_size=5, stride=1, padding=1)

    self.conv_4a = nn.Conv2d(256, 512, kernel_size=5, stride=1, padding=1)
    self.conv_4b = nn.Conv2d(512, 512, kernel_size=5, stride=1, padding=1)
    self.conv_4c = nn.Conv2d(512, 512, kernel_size=5, stride=1, padding=1)
    self.conv_4d = nn.Conv2d(512, 512, kernel_size=5, stride=1, padding=1)

Merging Feature maps

    self.featuremap = nn.Conv2d(1024, 512, kernel_size=1, stride=1, padding=0)

def forward(self, image_tensor: Tensor) -> Tensor:
    
    k3 = image_tensor
    k5 = image_tensor

kernel 3*3:

    for layer in self.base:
        k3 = layer(k3)

kernel 5*5:

    k5 = F.relu(self.conv_1a(k5))
    k5 = F.relu(self.conv_1b(k5))
    k5 = F.max_pool2d(k5, kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)

    k5 = F.relu(self.conv_2a(k5))
    k5 = F.relu(self.conv_2b(k5))
    k5 = F.relu(self.conv_2c(k5))
    k5 = F.max_pool2d(k5, kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)

    k5 = F.relu(self.conv_3a(k5))
    k5 = F.relu(self.conv_3b(k5))
    k5 = F.relu(self.conv_3c(k5))
    k5 = F.relu(self.conv_3d(k5))
    k5 = F.max_pool2d(k5, kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)

    k5 = F.relu(self.conv_4a(k5))
    k5 = F.relu(self.conv_4b(k5))
    k5 = F.relu(self.conv_4c(k5))
    k5 = F.relu(self.conv_4d(k5))
    k5 = F.max_pool2d(k5, kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)

Concat the 2 Networks:

    conc_featuremap = torch.cat((k3, k5),dim=1)

Merge Concatinated Feature

    featuremap = self.featuremap(conc_featuremap)
    
    return featuremap