Skip to content
This repository has been archived by the owner on Feb 7, 2023. It is now read-only.

Commit

Permalink
Re-apply #266
Browse files Browse the repository at this point in the history
Summary: Closes #404

Differential Revision: D4943280

Pulled By: Yangqing

fbshipit-source-id: c0988598d8ccb8329feac88382686324b90d4d46
  • Loading branch information
Yangqing authored and facebook-github-bot committed Apr 26, 2017
1 parent 8e01e4c commit 34cff80
Show file tree
Hide file tree
Showing 14 changed files with 134 additions and 204 deletions.
103 changes: 19 additions & 84 deletions README.md
@@ -1,18 +1,22 @@
# 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.
Caffe2 is a lightweight, modular, and scalable deep learning framework. Building on the original [Caffe](http://caffe.berkeleyvision.org), Caffe2 is designed with expression, speed, and modularity in mind.

## Questions and Feedback

Please use Github issues (https://github.com/caffe2/caffe2/issues) to ask questions, report bugs, and request new features.

Please participate in our survey (https://www.surveymonkey.com/r/caffe2). We will send you information about new releases and special developer events/webinars.

## License and Citation

Caffe2 is released under the [BSD 2-Clause license](https://github.com/Yangqing/caffe2/blob/master/LICENSE).

## Building Caffe2
### Build Status

[![Travis Build Status](https://travis-ci.org/caffe2/caffe2.svg?branch=master)](https://travis-ci.org/caffe2/caffe2)

[![Windows Build status](https://ci.appveyor.com/api/projects/status/kec4ta779stuyb83?svg=true)](https://ci.appveyor.com/project/Yangqing/caffe2)


Detailed build matrix (hit refresh if you see icons not showing up due to heroku):

| Target | Status |
Expand All @@ -24,83 +28,14 @@ Detailed build matrix (hit refresh if you see icons not showing up due to heroku
| Linux + MKL | [![Build LinuxMKL](https://travis-matrix-badges.herokuapp.com/repos/caffe2/caffe2/branches/master/6)](https://travis-ci.org/caffe2/caffe2) |
| Windows | [![Build status](https://ci.appveyor.com/api/projects/status/kec4ta779stuyb83?svg=true)](https://ci.appveyor.com/project/Yangqing/caffe2) |

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](https://github.com/bwasti/AICamera). 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)
- [x] Default CPU build
- [x] Default GPU build

OS X (Clang)
- [x] Default CPU build
- [x] Default GPU build

Options (both Clang and GCC)
- [ ] Nervana GPU
- [ ] ZMQ
- [ ] RocksDB
- [ ] MPI
- [ ] OpenMP
- [x] No LMDB
- [x] No LevelDB
- [x] No OpenCV

BLAS
- [x] OpenBLAS
- [x] ATLAS
- [ ] MKL

Other
- [x] CMake 2.8 support
- [x] List of dependencies for Ubuntu 14.04
- [x] List of dependencies for OS X
### Further Resources on [Caffe2.ai](http://caffe2.ai)

* [Installation](http://caffe2.ai/docs/getting-started.html)
* [Learn More](http://caffe2.ai/docs/learn-more.html)
* [Upgrading to Caffe2](http://caffe2.ai/docs/caffe-migration.html)
* [Datasets](http://caffe2.ai/docs/datasets.html)
* [Model Zoo](http://caffe2.ai/docs/zoo.html)
* [Tutorials](http://caffe2.ai/docs/tutorials.html)
* [Operators Catalogue](http://caffe2.ai/docs/operators-catalogue.html)
* [C++ API](http://caffe2.ai/doxygen-c/html/classes.html)
* [Python API](http://caffe2.ai/doxygen-python/html/namespaces.html)
2 changes: 1 addition & 1 deletion caffe2/core/common.h
Expand Up @@ -29,7 +29,7 @@
// as a track point for bugs, until we find a proper versioning cycle.

#define CAFFE2_VERSION_MAJOR 0
#define CAFFE2_VERSION_MINOR 5
#define CAFFE2_VERSION_MINOR 6
#define CAFFE2_VERSION_PATCH 0
#define CAFFE2_VERSION \
(CAFFE2_VERSION_MAJOR * 10000 + CAFFE2_VERSION_MINOR * 100 + \
Expand Down
2 changes: 2 additions & 0 deletions caffe2/python/helpers/pooling.py
@@ -1,3 +1,5 @@
## @package pooling
# Module caffe2.python.helpers.pooling
## @package fc
# Module caffe2.python.helpers.pooling
from __future__ import absolute_import
Expand Down
2 changes: 2 additions & 0 deletions caffe2/python/layer_test_util.py
@@ -1,3 +1,5 @@
## @package layer_test_util
# Module caffe2.python.layer_test_util
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
Expand Down
2 changes: 2 additions & 0 deletions caffe2/python/layers/optimizers.py
@@ -1,3 +1,5 @@
## @package optimizers
# Module caffe2.python.layers.optimizers
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
Expand Down
2 changes: 2 additions & 0 deletions caffe2/python/layers/uniform_sampling.py
@@ -1,3 +1,5 @@
## @package uniform_sampling
# Module caffe2.python.layers.uniform_sampling
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
Expand Down
2 changes: 2 additions & 0 deletions caffe2/python/predictor/predictor_exporter.py
@@ -1,3 +1,5 @@
## @package predictor_exporter
# Module caffe2.python.predictor.predictor_exporter
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
Expand Down
2 changes: 2 additions & 0 deletions caffe2/python/predictor/predictor_py_utils.py
@@ -1,3 +1,5 @@
## @package predictor_py_utils
# Module caffe2.python.predictor.predictor_py_utils
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
Expand Down
2 changes: 2 additions & 0 deletions caffe2/python/predictor/serde.py
@@ -1,3 +1,5 @@
## @package serde
# Module caffe2.python.predictor.serde
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
Expand Down
2 changes: 2 additions & 0 deletions caffe2/python/predictor_constants.py
@@ -1,3 +1,5 @@
## @package predictor_constants
# Module caffe2.python.predictor_constants
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
Expand Down
Expand Up @@ -103,15 +103,6 @@
" print(\"Now we can test the model!\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"If you successfully downloaded a model, you can try to convert it to Caffe2 and play with it in the [Caffe Translator Tutorial](Caffe_translator.ipynb)."
]
},
{
"cell_type": "code",
"execution_count": null,
Expand Down
110 changes: 49 additions & 61 deletions caffe2/python/tutorials/Image_Pre-Processing_Pipeline.ipynb

Large diffs are not rendered by default.

92 changes: 43 additions & 49 deletions caffe2/python/tutorials/Loading_Pretrained_Models.ipynb

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions scripts/diagnose_protobuf.py
@@ -1,3 +1,5 @@
## @package diagnose_protobuf
# Module scripts.diagnose_protobuf
"""Diagnoses the current protobuf situation.
Protocol buffer needs to be properly installed for Caffe2 to work, and
Expand All @@ -11,6 +13,10 @@
python scripts/diagnose_protobuf.py
"""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import os
import re
from subprocess import Popen, PIPE
Expand Down

0 comments on commit 34cff80

Please sign in to comment.