Say,
class Model(nn.Module):
def __init__(self):
super().__init__()
self.net = nn.Sequential(nn.Conv2d(3, 3, 1, 1, 0),
nn.Conv2d(3, 3, 1, 1, 0))
def forward(self, x):
for name, layer in self.net.named_modules():
x = layer(x)
Now the thing is .named_modlues()
will give me
first the whole thing
then the Sequential
(so now my code has already propagated the input through the entire network)
And then the two convs.
I just want the layers to iterate over one by one.
One hardcoded solution is to skip over the first 2. which is not a good solution.
Another is to, check if the layer is present in a list
of acceptable layers and then pass the x
through it.
Any other solutions?