You could create a custom submodule inside your main module:
class MySubmodule(nn.Module):
    def __init__(self):
        super(MySubmodule, self).__init__()
        self.feat1 = nn.Conv2d(1, 1, 3, 1, 1)
        # ...
        
    def forward(self, x):
        x = self.feat1(x)
        return x
    
class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.part1 = MySubmodule()
        
    def forward(self, x):
        x = self.part1(x)
        return x

Alternatively, you could just create lists with the necessary parameters and pass them to the corresponding optimizer:
params = list(model.feat1.parameters()) + list(model...)
optimizer = torch.optim.SGD(params, lr=1e-3)