Jimmy_Xiaoke_Shen:

x = self.pool(F.relu(self.suctomconv(x))) x = self.pool(F.relu(self.suctomconv(x)))


Thanks Juan. It’s interesting to know this. Then I assume
if we have the following forward, the graph defined here will go through customconv two times, it is something like the following:
CONV1 -->   CUSTOMCONV1 --> CUSTOMCONV1(SAME as previous one)
instead of
CONV1 -->   CUSTOMCONV1 --> CUSTOMCONV1(DIFFERENT as previous one)
def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.customconv(x)))
        x = self.pool(F.relu(self.customconv(x)))
        return x

If so, all parameters are defined in __init__ and in the forward, we just use them. It is possible that parameters used in forward is a subset  of the parameters defined in __init__.
For those not used one, we did not train them, and the model will be finally saved as the initial random weights.
I am not sure whether I am understanding this part correctly.