Hello everyone,
what is a valid way to construct a Hierarchical NN Architecture of subcomponents.
The goal is accomplish something like this:
class FeedForwardLayer( nn.Module ):
     def __init__(self):
         super().__init__()

         self.lin = nn.Linear( ... ) 
         self.bn = nn.BatchNorm1d( ... )
         self.act = nn.ReLU( )
         self.do = nn.dropout( ... )

    def forward( self , x ):
        return self.do(   self.act(    self.bn(    self.lin(  x )  )  )  )

class MultiLayerNetwork( nn.Module  ):
    def __init__( self ):
         super().__init__()
         self.layer_1 = FeedForwardLayer()
         ...
         self.layer_n = FeedForwardLayer()

    def forward(self, x ):
         hidden_1 = self.layer_1( x )
         hidden_2 = self.layer_2( hidden_1 )
         ...
         return hidden_n


For the purpose of simplicity there are some pseudo code elements,
no need to correct them.
My question is regarding the structure.
Thanks in advance