Hmm, I thought that the FeatureExtractor you showed above can deal only with sequential models.
The loop
for name, module in self.submodule._modules.items():
    x = module(x)

passes forward the output of each submodule's module, in a sequential manner, no?
Maybe I don’t understand what the method _modules() provides…