Draft development guidelines, link from README
[platform/upstream/caffe.git] / README.md
1 [Caffe: Convolutional Architecture for Fast Feature Extraction](http://caffe.berkeleyvision.org)
2
3 Created by [Yangqing Jia](http://daggerfs.com), UC Berkeley EECS department.
4 In active development by the Berkeley Vision and Learning Center ([BVLC](http://bvlc.eecs.berkeley.edu/)).
5
6 ## Introduction
7
8 Caffe aims to provide computer vision scientists with a **clean, modifiable
9 implementation** of state-of-the-art deep learning algorithms. Network structure
10 is easily specified in separate config files, with no mess of hard-coded
11 parameters in the code. Python and Matlab wrappers are provided.
12
13 At the same time, Caffe fits industry needs, with blazing fast C++/Cuda code for
14 GPU computation. Caffe is currently the fastest GPU CNN implementation publicly
15 available, and is able to process more than **20 million images per day** on a
16 single Tesla K20 machine \*.
17
18 Caffe also provides **seamless switching between CPU and GPU**, which allows one
19 to train models with fast GPUs and then deploy them on non-GPU clusters with one
20 line of code: `Caffe::set_mode(Caffe::CPU)`.
21
22 Even in CPU mode, computing predictions on an image takes only 20 ms when images
23 are processed in batch mode.
24
25 * [Installation instructions](http://caffe.berkeleyvision.org/installation.html)
26 * [Caffe presentation](https://docs.google.com/presentation/d/1lzyXMRQFlOYE2Jy0lCNaqltpcCIKuRzKJxQ7vCuPRc8/edit?usp=sharing) at the Berkeley Vision Group meeting
27
28 \* When measured with the [SuperVision](http://www.image-net.org/challenges/LSVRC/2012/supervision.pdf) model that won the ImageNet Large Scale Visual Recognition Challenge 2012.
29
30 ## License
31
32 Caffe is BSD 2-Clause licensed (refer to the
33 [LICENSE](http://caffe.berkeleyvision.org/license.html) for details).
34
35 The pretrained models published by the BVLC, such as the
36 [Caffe reference ImageNet model](https://www.dropbox.com/s/n3jups0gr7uj0dv/caffe_reference_imagenet_model)
37 are licensed for academic research / non-commercial use only. However, Caffe is
38 a full toolkit for model training, so start brewing your own Caffe model today!
39
40 ## Citing Caffe
41
42 Please kindly cite Caffe in your publications if it helps your research:
43
44     @misc{Jia13caffe,
45       Author = {Yangqing Jia},
46       Title = { {Caffe}: An Open Source Convolutional Architecture for Fast Feature Embedding},
47       Year  = {2013},
48       Howpublished = {\url{http://caffe.berkeleyvision.org/}
49     }
50
51 ## Documentation
52
53 Tutorials and general documentation are written in Markdown format in the `docs/` folder.
54 While the format is quite easy to read directly, you may prefer to view the whole thing as a website.
55 To do so, simply run `jekyll serve -s docs` and view the documentation website at `http://0.0.0.0:4000` (to get [jekyll](http://jekyllrb.com/), you must have ruby and do `gem install jekyll`).
56
57 We strive to provide provide lots of usage examples, and to document all code in docstrings.
58 We'd appreciate your contribution to this effort!
59
60 ## Contributing
61
62 Caffe is developed with active participation of the community by the [Berkeley Vision and Learning Center](http://bvlc.eecs.berkeley.edu/).
63 We welcome all contributions!
64
65 Our workflow is this:
66
67 - The `dev` branch is for new development, community contributions, and testing.
68 - The `master` branch is handled by BVLC, which will integrate changes from `dev` on a roughly monthly schedule.
69 - Do new development in [feature branches](https://www.atlassian.com/git/workflows#!workflow-feature-branch) with decriptive names.
70 - Bring your work up-to-date by [rebasing](http://git-scm.com/book/en/Git-Branching-Rebasing) onto the latest `dev`. (Polish your changes by [interactive rebase](https://help.github.com/articles/interactive-rebase), if you'd like.)
71 - [Pull request](https://help.github.com/articles/using-pull-requests) your contribution to BVLC/caffe's `dev` branch for discussion and review.
72   * PRs should live fast, die young, and leave a beautiful merge. Pull
73     request sooner than later so that discussion can guide development.
74   * Code must be accompanied by documentation and tests at all times.
75   * Only fast-forward merges will be accepted.
76
77 See our [development guidelines](http://caffe.berkeleyvision.org/development.html) for further details–the more closely these are followed, the sooner your work will be merged.
78
79 #### [Shelhamer's](https://github.com/shelhamer) “life of a branch in four acts”
80
81 Make the `feature` branch off of the latest `bvlc/dev`
82 ```
83 git checkout dev
84 git pull upstream dev
85 git checkout -b feature
86 # do your work, make commits
87 ```
88
89 Prepare to merge by rebasing your branch on the latest `bvlc/dev`
90 ```
91 # make sure dev is fresh
92 git checkout dev
93 git pull upstream dev
94 # rebase your branch on the tip of dev
95 git checkout feature
96 git rebase dev
97 ```
98
99 Push your branch to pull request it into `dev`
100 ```
101 git push origin feature
102 # ...make pull request to dev...
103 ```
104
105 Now make a pull request! You can do this from the command line (`git pull-request -b dev`) if you install [hub](https://github.com/github/hub).
106
107 The pull request of `feature` into `dev` will be a clean merge. Applause.