Caffe学习(未完)

1. 前言

Caffe是大神贾扬清在加州伯克利大学博士期间开发的深度学习框架,在学界和工业界得到广泛应用。
Caffe是CNN模型的非常好的框架,方便、易用;torch7是机器学习一个非常好的框架,但是,学习曲线比caffe要陡峭一些。torch7更灵活,能搞定更多的机器学习算法模型。

2. Caffe上手

3. Google Protocol Buffer

我的基于用户的角度来理解这是一个标准,当大家都遵守这个标准,那么就可以做通讯协议,可以使语言无关,平台无关。那么,它的干货部分是Protocol Buffer是一种轻便 高效 的结构化数据存储格式。

3.1test_iter和test_interval

首先说明一个概念:在caffe中的一次迭代iterration指的是一个batch,而不是一张图片。

  • test_iter: 在测试的时候,需要迭代的次数,即test_iter* batchsize(测试集的)=测试集的大小,测试集batchsize可以在prototx文件里设置
  • test_interval:interval是区间的意思,所有该参数表示:训练的时候,每迭代500次就进行一次测试。

caffe在训练的过程是边训练边测试的。训练过程中每test_interval次迭代(也就是test_interval*batchsize个训练样本参与了计算),计算一次测试误差。计算一次测试误差就需要包含所有的测试图片,这样可以认为在一个epoch里,训练集中的所有样本都遍历以一遍,但测试集的所有样本至少要遍历一次,至于具体要多少次,也许不是整数次,这就要看代码,大致了解下这个过程就可以了。

4. 在 Caffe 中如何计算卷积?

  • 卷积看成是多个局部的全连接。
  • 卷积后长宽计算(方形):
    outputh=imageh+padkernelhstride+1

    • 上述公式错误,感谢朝朝与暮暮指出错误
    • 正确公式为:
      • outputw=imagew+2padkernelsizestride+1
      • outputh=imageh+2padkernelsizestride+1
      • 其中stride大于等于1
      • 一般来说下式应整除,如此才能将image的所有数据进行卷积,避免数据丢失
        imageworh+2padkernelsizestride
  • 知乎-贾扬清: 里回答不是很详细,但是图片很生动,关键是作者亲临,必须要放上来。
  • Convolution in Caffe: a memo: 卷积算法。
  • 如何理解卷积,另外如何理解图像处理中的卷积?: 最佳答案进行了多角度说明,如果对模版、滤波器、卷积核名词有过了解,看了后可以加深它们共性的认识。
  • Caffe源码阅读(2) 卷积层: 代码跟读,深入理解。

5. 问题汇总(待补充)

5.1. 训练不收敛,loss居高不下

  • 降低学习率。
  • 样本是否充足。

2016.12.13更新
2016.1.4更新
2016.1.13更新,未完待续

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值