I have never try that but I think it may work
class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.body = nn.ModuleList() 

    def add_layer(self, layer):
        self.body.append(layer)

    def forward(self, x):
        return self.body(x)


pool = [nn.Conv2d(3, 32, 1), nn.Conv2d(32, 64, 1), nn.Conv2d(64, 128, 1)]
net = Net()
for i, layer in enumerate(pool):
    # 1. load state dict
    if i > 0:
        state_dict = torch.load("{}.pt".format(i - 1))
        print(state_dict.keys())
        net.load_state_dict(state_dict)

    # 2. add layer
    net.add_layer(layer)

    # 2. init optimizer(freeze weights), scheduler, and train
    pass 

    # 3. save dict
    torch.save(net.state_dict(), "{}.pt".format(i))