Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


Load Caffe networks in Torch7

Install torch first. There is no Caffe dependency, only protobuf has to be installed. In Ubuntu do:

sudo apt-get install libprotobuf-dev protobuf-compiler

In OS X:

brew install protobuf

Then install the package itself:

luarocks install loadcaffe

In Ubuntu 16.04 you need to use gcc-5: CC=gcc-5 CXX=g++-5 luarocks install loadcaffe

Load a network:

require 'loadcaffe'

model = loadcaffe.load('deploy.prototxt', 'bvlc_alexnet.caffemodel', 'ccn2')

Models from Caffe Model Zoo:

Network ccn2 nn cudnn
bvlc_alexnet + - +
bvlc_reference_caffenet + - +
bvlc_reference_rcnn_ilsvrc13 + - +
finetune_flickr_style + - +
VGG_CNN_S + + +
VGG_CNN_M + + +
VGG_CNN_M_2048 + + +
VGG_CNN_M_1024 + + +
VGG_CNN_M_128 + + +
VGG_CNN_F + + +
VGG ILSVRC-2014 16-layer + + +
VGG ILSVRC-2014 19-layer + + +
Network-in-Network Imagenet - + +
Network-in-Network CIFAR-10 - + +
VGG16_SalObjSub + + +
AlexNex_SalObjSub + - +
Binary Hash Codes + - +
Oxford 102 Flowers + - +
Age&Gender + + +
MNIST LeNet - + +

Loading googlenet is supported by For other models with non-sequential structure check

NN support means both CPU and GPU backends.

You can also use Caffe inside Torch with this: However you can't use both loadcaffe and caffe in one torch session.

An example of using the package is in examples/mnist_lenet.lua. After running script to train lenet model in Caffe you can easily load and test it in Torch7 on CPU and GPU (with 'cuda' as a first arguments)

Some of ImageNet networks are validated to give reported accuracy in torch in

Rights to caffe.proto belong to the University of California.