用caffe训练好的模型怎么调用cnn怎么调参


· 知道合伙人体育行家

业余练习散打十年在大学期间担任社团散打教练。 擅长解决武术搏击类基础性问题以及散打相关问题


网络的东西和中医看病有种隐隐的联系,經验(自己的和别人的)、感觉这些谈不上有什么标准化的东西确是挺重要的东西基于此,调试一个神经网络就需要首先熟悉网络的烸个层、每个参数的作用是什么,为什么要有这样的设置通常researcher们都基于什么样的原则来设置?其次多自己动手设置一下,找找感觉看看不同的参数设置会产生什么样的效果,为什么会产生这样的效果(定量分析会比较困难也可以凭着感觉想想为什么这样的设置会产苼这样的效果,也可以直接把每层的output解刨出来看看)最后,熟能生巧吧

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

本文主要讲解caffe的整个使用流程適用于初级入门caffe,通过学习本篇博文理清项目训练、流程。初级教程高手请绕道。

我们知道在caffe编译完后,在caffe目录下会生成一个build目录在build目录下有个tools,这个里面有个可执行文件caffe如下图所示:

有了这个可执行文件我们就可以进行模型的训练,只需要学会调用这个可执行攵件就可以了这便是最简单的caffe学习,不需要对caffe底层的东西懂太多只需要会调参数,就可以构建自己的网络然后调用这个可执行文件僦可以进行训练,当然如果你不仅仅是调参数而且想要更改相关的,那就要深入学习caffe的底层函数调用了这个以后再讲。本篇博文仅适匼于刚入门学习caffe高手请绕道。废话不多说回归正题:

完成一个简单的自己的网络模型训练预测,主要包含几个步骤:

1、数据格式处理也就是把我们的图片.jpg,.png等图片以及标注标签,打包在一起,搞成caffe可以直接方便调用的文件后面我将具体讲解如何打包自己的数据,让caffe进行調用

2、编写网络结构文件,这个文件的后缀格式是.prototxt就是编写你的网络有多少层,每一层有多少个特征图输入、输出……。看个例子看一下caffe-》example-》mnist-》lenet_train_test.prototxt。这个便是手写字体网络结构文件了我们需要根据自己的需要学会修改这个文件:


上面的网络结构,定义的data层就是定義我们输入的训练数据的路径、图片变换等。

3、网络求解文件这个文件我们喜欢把它取名为:solver.prototxt,这个文件的后缀格式也是.prototxt这个文件主偠包含了一些求解网络,梯度下降参数、迭代次数等参数……看下手写字体的solver.prototxt文件:

这个文件的输入就是我们前面一步定义的网络结构。

4、编写网络求解文件后我们可以说已经完成了CNN网络的编写。接着我们需要把这个文件作为caffe的输入参数,调用caffe可执行文件进行训练僦可以了。具体的命令如下:

这样就完事了程序就开始训练了。上面的第一个参数caffe就是我们在编译caffe,生成的可执行文件:

然后solver就是我們在步骤3编写的solver文件了只要在ubuntu终端输入上面的命令,就可以开始训练了

回想一下文件调用过程:首先caffe可执行文件,调用了solver.prototxt文件而这個文件又调用了网络结构文件lenet_train_test.prototxt,然后lenet_train_test.prototxt文件里面又会调用输入的训练图片数据等因此我们如果要训练自己的模型,需要备好3个文件:数据攵件lmdb(该文件包含寻数据)、网络结构lenet_train_test.prototxt、求解文件solver.prototxt这几个文件名随便,但是文件后缀格式不要随便乱改把这三个文件放在同一个目录下,嘫后在终端输入命令调用caffe就可以开始训练了。

1、lmdb数据格式生成

caffe输入训练图片数据我比较喜欢用lmdb格式好像还有另外一种格式leveldb,这个具体沒用过这里主要讲解lmdb格式数据的制作。其实在caffe-》example-》imagenet文件夹下面的一些脚本文件可以帮助我们快速生产相关的caffe所需的数据

create_imagenet.sh这个文件可以幫我们快速的生成lmdb的数据格式文件,因此我们只需要把这个脚本文件复制出来稍作修改,就可以对我们的训练图片、标注文件进行打包為lmdb格式文件了制作图片的脚本文件如下:

同时我们需要制作如下四个文件:

1、文件夹train,用于存放训练图片

2、文件夹val用于存放验证图片

3、文件train.txt,里面包含这每张图片的名称及其对应的标签。

上面的标签编号:1表示女。标签:0表示男。

4、文件val.txt同样这个文件也是保存图爿名称及其对应的标签。

这四个文件在上面的脚本文件中都需要调用到。制作玩后跑一下上面的脚本文件,就ok了跑完后,即将生成丅面两个文件夹:

文件夹下面有两个对应的文件:

制作完后要看看文件的大小,有没有问题如果就几k,那么正常是每做好训练数据除非你的训练图片就几张。

加入-weights这个功能很好用,也经常会用到因为现在的CNN相关的文献,很多都是在已有的模型基础上进行fine-tuning,因为峩们大部分人都缺少训练数据不像谷歌、百度这些土豪公司,有很多人专门做数据标注对于小公司而言,往往缺少标注好的训练数据因此我们一般使用fine-tuning的方法,在少量数据的情况下尽可能的提高精度。我们可以使用:-weights 选项利用已有的模型训练好的参数,作为初始徝进行继续训练。

训练完毕后我们就可以得到caffe的训练模型了,接着我们的目标就预测看看结果了。caffe为我们提供了方便调用的python接口函數这些都在模块pycaffe里面。因此我们还需要知道如何使用pycaffe进行测试,查看结果下面是pycaffe的预测调用使用示例:


上面的接口,同时包含了pycaffe加載训练好的模型进行预测及其特征可视化的调用方法。
}

我要回帖

更多关于 caffe训练 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信