Inheriting from nn.Sequential 43 is a nice way to write less of the forward pass yourself.
class TestModule(nn.Sequential):

    def __init__(self):
        super().__init__()
        self.add_module("net1", nn.Linear(100, 200))
        self.add_module("ReLU", nn.ReLU())
        self.add_module("drop", nn.Dropout(0.5))
        self.add_module("net2", nn.Linear(200, 1))
        self.add_module("sigmoid", nn.Sigmoid())

    def forward(self, V):
        return super().forward(V).squeeze()

The modules added via self.add_module are called by super().forward in the order they are added.
You can then reduce this even more by creating higher level wrappers of common NN functions:
class TestModule(nn.Sequential):

    def __init__(self):
        super().__init__()
        self.add_module(
            "layer1", my_nn.Linear(100, 200, activation=nn.ReLU(), p=0.5)
        )
        self.add_module("layer2", my_nn.Linear(200, 1, activation=nn.Sigmoid()))

    def forward(self, V):
        return super().forward(V).squeeze()