在开始之前,我们很感激你对Caffe2感兴趣,希望Caffe2在你的机器学习作品中是一个高性能的框架。Caffe2致力于模块化,促进深度学习想法和原型的实现。
选择你的学习路线
1. 使用一个现成的预训练模型(容易)
2. 编写自己的神经网络(中等)
3. 移动应用。做一个应用深度学习技术的移动端APP(高级)
选择1,点击链接,有几个使用预训练模型的例子,我们将会展示如何在几分钟内跑起demo
选择2,你需要一些深度学习的背景知识。后面会给出一些资料的链接。
选择3,你将会看到如何在Android或者IOS上运行图像分类的APP。这是完全即插即用的,不过你需要了解Caffe2的C++接口。
IPython Notebook
在/caffe/python/examples
目录下有几个程序示例,可以帮助你了解如何使用Caffe2
char_rnn.py:生成一个递归神经网络,对你输入的文本进行抽样,然后随机生成一个类似风格的文本。
lmdb_create_example.py:生成一个图片和标签的lmdb的数据库,你可以把这个作为框架写自己的数据读入接口
resnet50_trainer.py:多GPU并行训练Resnet-50。可以用来在imagenet上训练。
seq2seq.py:创建一个特殊的能处理文本行的RNN,比如翻译
seq2seq_util.py:序列到序列的有用函数
New to Caffe2
Basics of Caffe2 - Workspaces, Operators, and Nets
Caffe2 包含三个概念:
- Workspaces
- Operators
- Nets
Toy Regression - Plotting Lines & Random Data
这个教程主要展示了如何使用Caffe2进行回归
- 生成随机样本数据
- 创建网络
- 自动训练网络
- 查看梯度下降结果和训练过程中参数的变化
Image Pre-Processing Pipeline
这个例子主要展示了如何进行数据预处理使之适合预训练的模型。
- 调整
- 缩放
- HWC到CHW的变换(译者注:缩写应该是channel,height,width)
- RGB到BGR的变换
- 图像预处理(译者注:包括减均值,归一化等等)
Creating a Convolutional Neural Network from Scratch
MNIST - Handwriting Recognition
这个教程创建一个小小的CNN来识别手写字符。
Create Your Own Dataset
这个教程告诉你如何导入和修改数据使之能在Caffe2中使用。教程使用的是Iris数据集
Tour of Caffe Components
C++ implementation
gpu.h: needs documentation
db.h: needs documentation
Python implementation
TensorProtosDBInput: needs documentation
Writing Your Own Operators
自定义Operators参考如下教程
Guide for creating your own operators
Tutorials Installation
如果你需要跑起手册里面的例子,你需要安装如下依赖包
sudo pip install flask graphviz hypothesis jupyter leveldb lmdb matplotlib pydot pyyaml requests scikit-image scipy tornado zeromq
结语:
转载请注明出处:http://www.jianshu.com/c/cf07b31bb5f2