学习网址是伯克利大学 http://caffe.berkeleyvision.org/tutorial/
1:Tour
Blobs, Layers, and Nets: anatomy of a Caffe model
the blob is the standard array and unified memory interface for the framework,The layer comes next as the foundation of both model and computation. The net follows as the collection and connection of layers.
Layer类派生出来的层类通过这实现这两个虚函数,产生了各式各样功能的层类。Forward是从根据bottom计算top的过程,Backward则相反(根据top计算bottom)。注意这里为什么用了一个包含Blob的容器(vector),对于大多数Layer来说输入和输出都各连接只有一个Layer,然而对于某些Layer存在一对多的情况,比如LossLayer和某些连接层。在网路结构定义文件(*.proto)中每一层的参数bottom和top数目就决定了vector中元素数目。
1
|
layers {
|
MNIST 训练
1、准备数据
cd $CAFFE_ROOT
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
到caffe的根目录,下载mnist的数据,然后通过convert程序转成lmdb的格式。
2、定义网络结构
$CAFFE_ROOT/examples/mnist/lenet_train_test.prototxt
$CAFFE_ROOT/src/caffe/proto/caffe.proto -- the protobuf definitions used by Caffe