ITPub博客

首页 > 人工智能 > 深度学习 > 【蜂口 | AI人工智能】caffe框架的使用——龙鹏的一站式caffe工程实践连载(三)

【蜂口 | AI人工智能】caffe框架的使用——龙鹏的一站式caffe工程实践连载(三)

原创 深度学习 作者:絵飛的魚 时间:2018-09-19 15:47:28 0 删除 编辑

知识引入        

这一次我将给大家带来Caffe基本使用的一个分享。本次分享将包含以下几个内容,首先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使用流程

主要包括以下四个步骤,如下图所示:

undefined

项目里我们会解读 Caffe的数据格式。其实现在主流的开源框架,采用的数据存储格式都是类似的,他们都是采用一个四维张量来进行存储,这也符合卷积神经网络的数据格式的基本要求。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31553577/viewspace-2214499/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-09-06

  • 博文量
    20
  • 访问量
    11794