CAFFE (Convolution Architecture For Feature Extraction) is a deep learning framework made for speed.

Caffe sits on top of C++/Cuda and supports CPU and GPU.

Caffe can process over 60M images per day with a single NVIDIA K40 GPU. That is 1 ms/image for inference and 4 ms/image for learning.

The library was initially designed for machine vision tasks, but more recent versions support sequences, speech and text modules.

Caffe sit on these four concepts:

  • blobs
  • layers
  • net
  • solver

Blob stores data and derivatives. Caffe moves data from CPU to GPU via blobs.

Layer transforms bottom blobs to top blobs.

Net is simple multiple layers. It computes gradients via Forward and Backward methods.

Solver uses gradients to update weights.

Caffe supports Matlab and Python so C++ is not the only way to work with Caffe.