Home / Ristretto | CNN Approximation

Ristretto | CNN Approximation

Ristretto: CNN approximation tool by LEPS

Created by
Philipp Gysel

View On GitHub

Ristretto is an automated CNN-approximation tool which condenses 32-bit floating point networks. Ristretto is an extension of Caffe and allows to test, train and fine-tune networks with limited numerical precision.

Ristretto In a Minute

  • Ristretto Tool: The Ristretto tool performs automatic network quantization and scoring, using different bit-widths for number representation, to find a good balance between compression rate and network accuracy.
  • Ristretto Layers: Ristretto re-implements Caffe-layers and simulates reduced word width arithmetic.
  • Testing and Training: Thanks to Ristretto’s smooth integration into Caffe, network description files can be changed to quantize different layers. The bit-width used for different layers as well as other parameters can be set in the network’s prototxt file. This allows to directly test and train condensed networks, without any need of recompilation.

Approximation Schemes

Ristretto allows for three different quantization strategies to approximate Convolutional Neural Networks:

  • Dynamic Fixed Point: A modified fixed-point format.
  • Minifloat: Bit-width reduced floating point numbers.
  • Power-of-two parameters: Layers with power-of-two parameters don’t need any multipliers, when implemented in hardware.


Cite us

Our approximation framework was presented in an extended abstract at ICLR’16. Check out our poster for more information. All results can be reproduced with our code on Github. If Ristretto helps your research project, please cite us:

  title={Hardware-oriented Approximation of Convolutional Neural Networks},
  author={Gysel, Philipp and Motamedi, Mohammad and Ghiasi, Soheil},
  journal={arXiv preprint arXiv:1604.03168},