Based on your code it seems you are iterating the modules in self.fenet and only keep the very last output using the same input for all layers. This would discard all outputs from previous layers besides the very last one so are you sure this is what you want?
If you want to pass the output of the previous layer to the next one I would guess the mismatch of the output features from the first layer and the expected input feature of the second and following layers would raise the shape mismatch.