【深度学习框架】-Caffe(入门级学习一:简单介绍)

1.什么是Caffe?
全称-Convolutional Architecture for Fast Feature Embedding,核心语言C++,支持命令行、Python和Matlab接口,支持CPU和GPU运行。

2.Caffe架构:
(1)数据存储: Caffe通过”blobs”以N维数组的方式存储和传递数据(相当于将数据封装了起来)。Blobs提供了一个统一的内存接口,用于数据的存储和传递(包括原始数据,模型参数等)。
常规4维数组:N,K,H,W(图像数,通道数,图像高,图像宽)
注:Caffe支持的数据类型不包括图像类型,训练前需要将图像类型转为lmdb类型的数据。
(2)layer: Caffe layer采用一或多个blobs作为输入,并产生一或多个blobs输出,Caffe提供了完整的layer类型(数据层、卷积层、激活层、loss层……)。
layer的定义由两部分组成,层属性和层参数,每个layer有’bottom’ blobs(表示输入),’top’ blobs(表示输出)。
(3)Net: Net是由layers组成的有向无环图(DAG),一个典型的网络始于数据层终于loss层。
(4)Model: 以Google Protocol Buffers的方式进行存储(xx.prototxt格式),训练得到的模型格式:xx.caffemodel (binaryproto)。
(5)Solver: 用于网络的求解,模型的优化。Solver每一次迭代:1⃣️调用forward计算输出和loss,2⃣️调用backward计算梯度,3⃣️按照solver方法,进行参数更新和优化。
Caffe solver方法:随机梯度下降(Stochastic Gradient Descent, type:”SGD”);AdaDelta(type:”AdaDelta”);自适应梯度(Adaptive Gradient,type:”AdaGrad”);Adam(type:”Adam”);Nesterov’s Accelerated Gradient(type:”Nesterov”);RMSprop(type:”RMSProp”).

3.Caffe中的迁移学习:
Fine-tuning:Caffe中同样可以加载pretrained model进行迁移学习。

4.为什么选择Caffe?
(1)模型的定义与优化均在配置文件中实现,不需要写太多的代码,代码能力弱的朋友也可以很容易地上手;
(2)CPU与GPU之间转换方便,可实现无缝切换;
(3)Caffe的速度快,高效;
(4)模块化,使得代码有很好的可扩展性;
(5)开源,且社区好,在学术界和工业界均有很好的支撑。

参考:
1. https://blog.csdn.net/qq_27923041/article/details/77431833
2. https://blog.csdn.net/ycheng_sjtu/article/details/39693655

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值