You are replacing self.conv2:
        self.conv2 = nn.Conv2d(32, 16, (3,3))
        self.act2 = nn.ReLU()
        self.pool2 = nn.MaxPool2d((2,2), stride=(2,2))
        # VGG block 3
        self.conv2 = nn.Conv2d(16, 8, (3,3))

The second self.conv2 definition should most likely be self.conv3.
EDIT: a few seconds too late! @Eta_C