Minimal runtime core of Caffe. This repo is aimed to provide a minimal C++ runtime core for those want to Forward a Caffe model.
Mini-Caffe only depends on OpenBLAS and protobuf which means you can't train model with Mini-Caffe. It also only supports Forward function which means you can't apply models like neural art style transform that uses Backward function.
You need a VC compiler to build Mini-Caffe. Visual Studio 2013 Community should be fine. You can download from here.
OpenBLAS library is already shipped with the source code, we don't need to compile it. If you want, you could download other version from here. v0.2.14 is used for Mini-Caffe.
protobuf is a git submodule in Mini-Caffe, we need to fetch the source code and compile it.
$ git submodule update --init
$ cd 3rdparty/src/protobuf/cmake
$ mkdir build
$ cd build
$ cmake .. -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -G "Visual Studio 12 2013 Win64"
Use protobuf.sln
to compile Debug
and Release
version.
With these two libraries, we can compile Mini-Caffe now. Copy protobuf's include headers and libraries. Generate caffe.pb.h
and caffe.pb.cc
.
$ copydeps.bat
$ generatepb.bat
$ mkdir build
$ cd build
$ cmake .. -G "Visual Studio 12 2013 Win64"
Use mini-caffe.sln
to compile it.
Install OpenBLAS and protobuf library through system package manager. Or you can compile OpenBLAS and protobuf by yourself. Then build Mini-Caffe.
$ sudo apt install libopenblas-dev libprotobuf-dev protobuf-compiler
$ ./generatepb.sh
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Release
$ make -j4
If you don't use Ubuntu, then you may need to install OpenBLAS and protobuf through your system package manager if any.
Install OpenBLAS and protobuf library through brew
.
$ brew install openblas protobuf
$ ./generate.sh
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Release
$ make -j4
Mini-Caffe now can be cross compiled for Android platform, checkout the document here.
Install CUDA and cuDNN in your system, then we can compile Mini-Caffe with GPU support. Run CMake command below.
$ cmake .. -DUSE_CUDA=ON -DUSE_CUDNN=ON
Currently we only test mini-caffe on CUDA8.0 with cuDNN5.1 and CUDA9.0 with cuDNN7.1.
Install Java and set environment variable JAVA_HOME
. Run CMake command below.
$ cmake .. -DUSE_JAVA=ON
checkout Python API here, install package via python setup.py install
.
To use Mini-Caffe as a library, you may refer to example.
The Profiler in Mini-Caffe can help you profile your network performance, see docs here.