Solved by tom in post #2 
              
              
                If you state down the documentation hard enough, you find that 

Conv2d has a bias parameter by default that your numpy calculation does not consider (see the formula in the doc),
padding documented to be is (implicit) zero padding. This matches my experience.

Best regards 
Thomas