Overcoming Noise and Variations In Low-Precision Neural Networks