Why use relu before maxpooling?
In this pytorch neural network tutorial tutorial link

I'm confuse why we need to use relu before max pooling.
Isn't the pixel values in the image are already positive? 
I don't know why relu max(0, x) is needed. 
Can anybody give me some advise on this issue?

 class Net(nn.Module):
  ...(init function)

   def forward(self, x):
     x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2)) # Max pooling over a (2, 2) window


The weights of the neural net can be negative thus you can have a negative activation and by using the relu function, you're only activating the nodes that serve the purpose. 
