cs231n : 深度学习框架的使用

  • Caffe
    • caffe的组成
    • caffe训练一个网络

转载请注明: 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(描述了怎么更新权重,迭代次数等等)

大概是以下的图的样子:
cs231n : 深度学习框架的使用_第1张图片

caffe训练一个网络

cs231n : 深度学习框架的使用_第2张图片

1、传递数据:训练集。
使用DataLayer,从LMDB中读取数据。这个看了具体代码之后就了解它说什么意思了。

2、定义网络:
所谓的VGG、ZF、GoogleNet、ResNet说的就是这个。
cs231n : 深度学习框架的使用_第3张图片

在fine-tune的时候情况如下:
cs231n : 深度学习框架的使用_第4张图片

3、定义solver:
如果是fine-tune,直接拷贝solver。
cs231n : 深度学习框架的使用_第5张图片

4、最后就是训练:
cs231n : 深度学习框架的使用_第6张图片

有一个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

各种框架的总结:
cs231n : 深度学习框架的使用_第7张图片

看来我想使用循环网络的话,Tensorflow是必不可少的了。Caffe+TF。

看看李飞飞大牛给的建议:
cs231n : 深度学习框架的使用_第8张图片

PS:截图来自于cs231n课程的ppt。
http://cs231n.stanford.edu/syllabus.html

你可能感兴趣的:(CMU:,Computer,Vision,Computer,Vision,深度学习,caffe,cs231n,说明)