  This work investigates how using reduced precision data in Convolutional
Neural Networks (CNNs) affects network accuracy during classification. More
specifically, this study considers networks where each layer may use different
precision data. Our key result is the observation that the tolerance of CNNs to
reduced precision data not only varies across networks, a well established
observation, but also within networks. Tuning precision per layer is appealing
as it could enable energy and performance improvements. In this paper we study
how error tolerance across layers varies and propose a method for finding a low
precision configuration for a network while maintaining high accuracy. A
diverse set of CNNs is analyzed showing that compared to a conventional
implementation using a 32-bit floating-point representation for all layers, and
with less than 1% loss in relative accuracy, the data footprint required by
these networks can be reduced by an average of 74% and up to 92%.
