Hi,
The problem is that self.conv1 and self.conv_1[0] are the same Module. So it is effectively doing parameter sharing.
If you only use self.conv_1 then you can simply avoid defining the conv layer itself as an attribute of self by doing something like this (for all convs)
# Note that the is no self. here!
conv1 = nn.Conv2d(self.in_channel, self.out_channel, 1, 1, 0, bias=False)
self.conv_1 = nn.Sequential(
            conv1,
            nn.BatchNorm2d(self.out_channel),
            nn.PReLU()
 )