Deep learning framework by the BVLC

Created by
Yangqing Jia
Lead Developer
Evan Shelhamer

Debian Installation

Caffe packages are available for several Debian versions, as shown in the following chart

Your Distro     |  CPU_ONLY  |  CUDA  |     Alias
Debian/stable   |     ✘      |   ✘    | Debian Jessie
Debian/testing  |     ✔      |   ☐    | Debian Stretch/Sid
Debian/unstable |     ✔      |   ✔    | Debian Sid

Last update: 2017-01-05

Binary installation with APT

Apart from the installation methods based on source, Debian/unstable and Debian/testing users can install pre-compiled Caffe packages via the official archive.

Make sure that there is something like the follows in your /etc/apt/sources.list: deb http://MIRROR/debian CODENAME main contrib non-free where MIRROR is your favorate Debian mirror, and CODENAME ∈ {testing,stretch,sid}.

Then we update APT cache and directly install Caffe. Note, the cpu version and the cuda version cannot be installed at the same time. # apt update # apt install [ caffe-cpu | caffe-cuda ] # caffe # command line interface working # python3 -c 'import caffe; print(caffe.__path__)' # python3 interface working It should work out of box.

Customizing caffe packages

Some users may need to customize the Caffe package. The way to customize the package is beyond this guide. Here is only a brief guide of producing the customized .deb packages.

Make sure that there is something like this in your /etc/apt/sources.list: deb sid main contrib non-free deb-src sid main contrib non-free

Then we build caffe deb files with the following commands: $ sudo apt update $ sudo apt install build-essential debhelper devscripts # standard package building tools $ sudo apt build-dep [ caffe-cpu | caffe-cuda ] # the most elegant way to pull caffe build dependencies $ apt source [ caffe-cpu | caffe-cuda ] # download the source tarball and extract $ cd caffe-XXXX [ ... optional, customize caffe code/build ... ] $ dch -llocal "Modified XXX in order to XXX" # write your one-line changelog $ debuild -B -j4 # build caffe with 4 parallel jobs (similar to make -j4) [ ... building ...] $ debc # optional, if you want to check the package contents $ sudo debi # optional, install the generated packages The resulting deb packages can be found under the parent directory of the source tree.

Note, the dch ... command line above is for bumping the package version number and adding an entry to the package changelog. If you would like to write more than one changelog entry, use subsequent dch command (see man 1 dch) instead of manually modifing debian/changelog unless you know how to keep its format correct. The changelog will be installed at e.g. /usr/share/doc/caffe-cpu/changelog.Debian.gz.

Source installation

Source installation under Debian/unstable is similar to that of Ubuntu, but here is a more elegant way to pull caffe build dependencies: $ sudo apt build-dep [ caffe-cpu | caffe-cuda ] Note, this requires a deb-src entry in your /etc/apt/sources.list.

Compiler Combinations

Some users may find their favorate compiler doesn’t work well with CUDA. CXX compiler | CUDA 7.5 | CUDA 8.0 | -------------+------------+------------+- GCC-7 | ? | ? | GCC-6 | ✘ | ✘ | GCC-5 | ✔ [1] | ✔ | CLANG-4.0 | ? | ? | CLANG-3.9 | ✘ | ✘ | CLANG-3.8 | ? | ✔ |

[1] CUDA 7.5 ‘s host_config.h must be patched before working with GCC-5.

BTW, please forget the GCC-4.X series, since its libstdc++ ABI is not compatible with GCC-5’s. You may encounter failure linking GCC-4.X object files against GCC-5 libraries. (See )



CUDNN library seems not redistributable currently. If you really want the caffe-cudnn deb packages, the workaround is to install cudnn by yourself, and hack the packaging scripts, then build your customized package.

sudo apt install caffe-cuda, apt’s dependency resolver is smart enough to deal with this.

sudo apt install caffe-doc
dpkg -L caffe-doc (for the CPU_ONLY version) (for the CUDA version)