Summary: When trying to build caffe2 with python provided by homebrew, I find out there are some errors in the building scripts. The "get_python_cmake_flags.py" script is supposed to find out the correct python library and header file locations. However, due to these errors, this script does not function correctly. After building, caffe2 is linked against the default python library provided by Apple which causes a crash when trying to validate whether or not the installation is successful: ```shell python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure" ``` The fix is as simple as follows: - Add "shell" so that command substitution could work under Makefile. - Add blank spaces between -D options so that they are treated as options not makefile targets. - Print the "flags" variable without the newline character so that they could be utilized by command substitution correctly. Closes https://github.com/caffe2/caffe2/pull/391 Differential Revision: D4943212 Pulled By: Yangqing fbshipit-source-id: 04d3595fa2d89fe57aed5b6a7a91a95114a82a1b
Caffe2
Caffe2 is a deep learning framework made with expression, speed, and modularity in mind. It is an experimental refactoring of Caffe, and allows a more flexible way to organize computation.
License and Citation
Caffe2 is released under the BSD 2-Clause license.
Building Caffe2
Detailed build matrix (hit refresh if you see icons not showing up due to heroku):
Target | Status |
---|---|
Linux | |
Mac (CPU) | |
Android | |
iOS | |
Linux + MKL | |
Windows |
git clone --recursive https://github.com/caffe2/caffe2.git
cd caffe2
OS X
brew install automake protobuf
mkdir build && cd build
cmake ..
make
Ubuntu
sudo apt-get install libprotobuf-dev protobuf-compiler libatlas-base-dev libgoogle-glog-dev libgtest-dev liblmdb-dev libleveldb-dev libsnappy-dev python-dev python-pip libiomp-dev libopencv-dev libpthread-stubs0-dev cmake python-protobuf
sudo pip install numpy
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_8.0.44-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1404_8.0.44-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
sudo apt-get install git
CUDNN_URL="http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz" &&
curl -fsSL ${CUDNN_URL} -O &&
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local &&
rm cudnn-8.0-linux-x64-v5.1.tgz &&
sudo ldconfig
mkdir build && cd build
cmake ..
make
Android and iOS
We use CMake's Android and iOS ports to build native binaries that you can then integrate into your Android or Xcode projects. See scripts/build_android.sh and scripts/build_ios.sh for more details.
For Android, one can also use gradle to build Caffe2 directly with Android Studio. An example project can be found here. Note that you may need to configure Android Studio so that it has the right SDK and NDK versions to build the code.
Raspberry Pi
For Raspbian, run scripts/build_raspbian.sh on the Raspberry Pi.
Tegra X1
To install Caffe2 on NVidia's Tegra X1 platform, simply install the latest system with the NVidia JetPack installer, and then run scripts/build_tegra_x1.sh on the Tegra device.
Python support
To run the tutorials you'll need ipython-notebooks and matplotlib, which can be installed on OS X with:
brew install matplotlib --with-python3
pip install ipython notebook
Build status (known working)
Ubuntu 14.04 (GCC)
- Default CPU build
- Default GPU build
OS X (Clang)
- Default CPU build
- Default GPU build
Options (both Clang and GCC)
- Nervana GPU
- ZMQ
- RocksDB
- MPI
- OpenMP
- No LMDB
- No LevelDB
- No OpenCV
BLAS
- OpenBLAS
- ATLAS
- MKL
Other
- CMake 2.8 support
- List of dependencies for Ubuntu 14.04
- List of dependencies for OS X