caffe框架的使用:一站式caffe工程实践连载(3)

知识引入
这一次分享将包含以下几个内容,首先Caffe的框架的介绍,我们将简单介绍一下Caffe框架的一些基本信息;然后介绍Caffe的基本使用,包含数据格式等等;接下来我们再详细的分析一下Caffe的一个网络配置文件;最后我们将详细的介绍一下Caffe训练的参数。
Caffe基本信息
Caffe,它是一个以C++和Cuda代码为主的一个开源框架。笔者比较推荐这样的一个开源框架进行学习,因为对于初学者来说,他可以接触到大量非常优秀的CI的代码,这对于大家巩固自己的代码基础是非常有用的。Caffe这个框架非常的灵活,它可以支持命令行python和Matlab等接口。多机多卡的使用也非常方便, GPU和CPU的切换也是非常的灵活。Caffe的开发者大家想必不陌生,贾扬清他在知乎上面也是一个大V,另外它还有一个另外的一个核心开发者,大家可以去Github上面关注一下他。
支持Caffe的主要平台
包括Linux mac,windows。笔者比较用的比较多的是Linux。
Caffe的依赖环境
Caffe依赖的开源库比较多,包括Cuda、Protobuf、Opencv等等。
Cuda是一个用于加速GPU训练的一个库。Protobuf是用于做序列化文件的,Opencv是一些数据读取接口,更多的这个依赖环境,我们在前面Caffe的编译,一种详细的说明,大家可以回过头去看。笔者非常喜欢Caffe这个开源框架的一个主要原因,是因为Caffe将数据和网络的定义与训练和测试代码进行了完整的分离。
与Tensorflow对比
当我们使用Tensorflow这样一个框 架的时候,我们一般会将数据的读取,网络的配置,网络的训练和测试,完整地写在一个Python文件里面。在笔者看来,这里显得有点混乱,不够灵活。而Caffe不一样,Caffe将数据和网络定义写在了一个网络配置文件里面,将训练和测试代码与之完全进行分离。具体来说,我们使用Caffe是这样的一个流程,首先我们准备好数据,它可以是Image的格式或者Lmdb的格式,然后我们定义好网络的文件,包含网络结构的配置,以及输入数据的路径的配置。然后我们定义好一些训练参数,包括学习率优化方法等等。最后我们使用一些接口进行训练和测试,可以使用C++接口或者Python接口或者Matlab接口。
Caffe使用流程
主要包括以下四个步骤,如下图所示:
Caffe使用流程
项目里我们会解读Caffe的数据格式。其实现在主流的开源框架,采用的数据存储格式都是类似的,他们都是采用一个四维张量来进行存储,这也符合卷积神经网络的数据格式的基本要求。

完整内容及视频解读,请关注蜂口小程序~
参与内测,免费获取蜂口所有内容,请申请内测(1*8*8*1*1*2*1*7*5*9*5),更有其他优惠福利多多,欢迎大家多多参与,尽情挑刺,凡是好的建议,我们都会虚心采纳哒~
蜂口小程序将持续为你带来最新技术的落地方法,欢迎随时关注了解~

猜你喜欢

转载自blog.csdn.net/qq_43019117/article/details/82497752