How to copy a predefined nn.Sequential properly and make it trainable?

I want to copy a pre-defined nn.Sequential() like the torchvision ResNet layer1 and make a new module that is trainable, without going through the pain of using _make_layer function. Is there an easy and safe way to do this?

Something like this:

class MyModel():
    def __init__(self):
        model = torchvision.models.resnet18(pretrained=True)
        self.layer1 = model.layer1
        self.layer11 = safe_copy_way(self.layer1)

    def forward(self, x):
        x = self.layer1(x)
        x = self.layer11(x)
        return x 

Yes, you can reassign modules as seen in your code snippet. You would have to change the attribute names of course to valid ones and you could use copy.deecopy for safe_copy_way.