转载请注明: http://blog.csdn.net/c602273091/article/details/54290065
Caffe
地址:http://caffe.berkeleyvision.org
安装caffe,安装faster rcnn,R-FCN请看我之前的博客:
http://blog.csdn.net/c602273091/article/details/53907162
http://blog.csdn.net/c602273091/article/details/53907216
http://blog.csdn.net/c602273091/article/details/54232797
Caffe比较适合用在前向传递网络的fine-tune和训练。而且不需要考虑写代码的问题,但是设计循环网络的话,用caffe就不那么好描述了。
caffe的组成
在Caffe中,用到了blob(用于描述数据组成);layer(描述了输入输出,以及对输入怎么操作,得到输出);net(很多层的网络就形成了完整的前向和后向的网络);solver(描述了怎么更新权重,迭代次数等等)
大概是以下的图的样子:
caffe训练一个网络
1、传递数据:训练集。
使用DataLayer,从LMDB中读取数据。这个看了具体代码之后就了解它说什么意思了。
2、定义网络:
所谓的VGG、ZF、GoogleNet、ResNet说的就是这个。
在fine-tune的时候情况如下:
3、定义solver:
如果是fine-tune,直接拷贝solver。
4、最后就是训练:
有一个Model Zoo,可以下载各种各样的网络:
https://github.com/BVLC/caffe/wiki/Model-Zoo
在看caffe的时候,需要着重查看下面的文件:
● caffe/python/caffe/_caffe.cpp:
○ Exports Blob, Layer, Net, and Solver classes
https://github.com/BVLC/caffe/blob/master/python/caffe/_caffe.cpp
● caffe/python/caffe/pycaffe.py
○ Adds extra methods to Net class
https://github.com/BVLC/caffe/blob/master/python/caffe/pycaffe.py
各种框架的总结:
看来我想使用循环网络的话,Tensorflow是必不可少的了。Caffe+TF。
看看李飞飞大牛给的建议:
PS:截图来自于cs231n课程的ppt。
http://cs231n.stanford.edu/syllabus.html