Caffe2: Portable High-Performance Deep Learning Framework from Facebook

Originally published at:

Yesterday Facebook launched Caffe2, an open-source deep learning framework made with expression, speed, and modularity in mind. It is a major redesign of Caffe: it inherits a lot of Caffe’s design while addressing the bottlenecks observed in the use and deployment of Caffe over the years. As a result, Caffe2 opens the gate for algorithm experimentation…


Great work! Will Caffe2 be compatible with Caffe projects, i.e. How easy to transfer the previous projects based on Caffe to the new framework?

On the first graph "Scaling Out with Multi-GPU machines" you used log-space for x axis and normal space for y axis. It completely contradicts to the content of graph. If you want to pull the wool over our eyes, you can go deeper: for example use loglog-space for x axis and square-space for y axis. Classical marketing, If i can say so. Shame on you.

Great, yet another CNN library...

My apologies. This is oversight from our side - will definitely fix.

I would respectfully decline the "classical marketing" comment though - Caffe is the first deep learning library to release *every single bit of the implementation detail* of a full CNN training as early as 2013, for free, full BSD. We intend to keep this spirit fully.

Well, not another, but more of a brainchild and a continued contribution of Caffe :)

Yup, if you would like to translate a model from Caffe to Caffe2 please try it out , and please do let us know if it has bugs.

Specifically, the script that allows you to convert a Caffe model to Caffe2 is here:

The graph has been updated in the post to use a log scale for the y-axis.

Here’s a slimmed down sorted extract of the top three results from that 1000-long tensor. The results were sorted by the probability of a match, 0.98222 (98%) being the highest. Good jobs!

Noob question: how does this compare to Tensorflow?

On Windows I ran into a minor issue with the model downloader. The command "python -m -i squeezenet" fails because it uses "os.symlink" which is problematic on windows. To complete the install, just open an admin prompt and create the symlink by hand similar to this:

mklink <your-build-root>\caffe2\python\models\squeezenet\ <your-build-root>\caffe2\python\models\

Will it be integrated in a near future with DIGITS ?

Great article.

Can you please provide benchmarks with ImageNet training used on a standard PC with 1,2,3 and 4 NVIDIA GTX 1080 Ti GPUs (PCIE 3.0 x16) and the ResNet-50 neural network architecture?

Update : I found a useful graph in an article on DGX - 1, where performance and scalability are presented for NVLink and PCIe.

With respect to the scaling graph ? Was it up to 64 GPUs on a single machine ? How was the MEMORY IO dealt with ? Can I get more details on how exactly the benchmark was generated ?