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

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/725074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存