利用caffe训练模型的总结(结直肠组织分类)
2017-04-14 09:06
295 查看
对caffe的了解还是小白,里面的很多配置文件还不是很清楚,今天使用的是AlexNet网络对我自己实验室数据进行训练,我的数据是医学数据结直肠,主要用来做分类问题,目的是将病理图像当中的不同类型的组织分割出来。下面我就说说使用caffe的心得和步骤。
对caffe中提供的AlexNet网络模型中主要有三个分别是train_val.prototxt,deploy.prototxt,solver.prototxt。我先说明一下这三个文件当中主要的内容:
train_val.prototxt:
里面主要是网络的结构,AlexNet是一个8层的网络结构为:
其中在imagenet中它的结构参数为:
这些就是网络当中的主要参数以及结构内容,在应用到自己工程当中我们需要选取合适网络结构模型,同时需要对网络当中一些参数进行改动,比如说卷积核大小,步长其中我主要修改的就是输入图片的大小,卷积核大小,步长,以及全链接层当中的参数输出个数,在训练的时候听我师兄的提点,由于参数的问题感觉好像不适用自己的项目,但是再想想AlexNet本来就是应用到多分类的问题当中的,自己的问题也是这样,所以还是使用的,出现不适用的情况是由于它的学习率的问题,学习速度过快导致信息的丢失。另外在第一层卷积层当中要注意的是卷积核不能太小,不然会导致信息丢失过多。
solver.prototxt文件当中就是一些参数的设定,这个文件可以是caffe网络文件中的核心,里面调用了网络模型以及参数的设定,在笔记《solver.prototxt文件参数解释》有说。
depoly.prototxt文件当中主要是在网络模型训练完之后进行测试用的,里面的参数要与train_val.prototxt中参数一致。
下面介绍如何进行模型的训练,在训练模型之前需要做的工作
(1)训练样本的建立:对于数据集的建立需要足够的数据量,数据不够我们可以通过各种方法扩充数据集,数据集分为test和train;
(2)lable的txt文件建立:在数据集当中我们需要给样本进行标签的建立,在创建下面的lmdb文件时需要用到标签的文件;
(3)lmdb文件的建立:lmdb文件是caffe能够识别的数据;
(4)利用lmdb文件建立test和train的均值文件,这个文件在train_val.prototxt网络文件当中会用到。
有了以上的这些文件,在利用caffe训练模型前期工作就已经做完了,下面就是利用这些文件进行模型的训练在train.sh这个执行文件中会将这些文件使用。
在文件中对模型的检测,执行文件是test.sh可以看出模型执行效果。有准确率和loss值。
在matlab中调用训练模型进行测试的时候我说说我遇到的一些问题或者一些心得。
(1)对命令窗口的信息查看很重要,我遇到过数据与模型不匹配的问题导致要求matlab退出,也最后的错误是deploy.prototxt中的卷积核大小与我之前训练模型大小不一样,其实就是我太用其他文件夹里面的deploy.prototxt。
(2)图像均值文件在matlab中的生成,必须使用train文件夹中的文件,这样用的图片大小才会与模型中图片大小匹配,不然就会报错执行不了。
之后的博客将会具体说说caffe的学习,其中有网上的参考。
对caffe中提供的AlexNet网络模型中主要有三个分别是train_val.prototxt,deploy.prototxt,solver.prototxt。我先说明一下这三个文件当中主要的内容:
train_val.prototxt:
里面主要是网络的结构,AlexNet是一个8层的网络结构为:
其中在imagenet中它的结构参数为:
这些就是网络当中的主要参数以及结构内容,在应用到自己工程当中我们需要选取合适网络结构模型,同时需要对网络当中一些参数进行改动,比如说卷积核大小,步长其中我主要修改的就是输入图片的大小,卷积核大小,步长,以及全链接层当中的参数输出个数,在训练的时候听我师兄的提点,由于参数的问题感觉好像不适用自己的项目,但是再想想AlexNet本来就是应用到多分类的问题当中的,自己的问题也是这样,所以还是使用的,出现不适用的情况是由于它的学习率的问题,学习速度过快导致信息的丢失。另外在第一层卷积层当中要注意的是卷积核不能太小,不然会导致信息丢失过多。
solver.prototxt文件当中就是一些参数的设定,这个文件可以是caffe网络文件中的核心,里面调用了网络模型以及参数的设定,在笔记《solver.prototxt文件参数解释》有说。
depoly.prototxt文件当中主要是在网络模型训练完之后进行测试用的,里面的参数要与train_val.prototxt中参数一致。
下面介绍如何进行模型的训练,在训练模型之前需要做的工作
(1)训练样本的建立:对于数据集的建立需要足够的数据量,数据不够我们可以通过各种方法扩充数据集,数据集分为test和train;
(2)lable的txt文件建立:在数据集当中我们需要给样本进行标签的建立,在创建下面的lmdb文件时需要用到标签的文件;
(3)lmdb文件的建立:lmdb文件是caffe能够识别的数据;
(4)利用lmdb文件建立test和train的均值文件,这个文件在train_val.prototxt网络文件当中会用到。
有了以上的这些文件,在利用caffe训练模型前期工作就已经做完了,下面就是利用这些文件进行模型的训练在train.sh这个执行文件中会将这些文件使用。
在文件中对模型的检测,执行文件是test.sh可以看出模型执行效果。有准确率和loss值。
在matlab中调用训练模型进行测试的时候我说说我遇到的一些问题或者一些心得。
(1)对命令窗口的信息查看很重要,我遇到过数据与模型不匹配的问题导致要求matlab退出,也最后的错误是deploy.prototxt中的卷积核大小与我之前训练模型大小不一样,其实就是我太用其他文件夹里面的deploy.prototxt。
(2)图像均值文件在matlab中的生成,必须使用train文件夹中的文件,这样用的图片大小才会与模型中图片大小匹配,不然就会报错执行不了。
之后的博客将会具体说说caffe的学习,其中有网上的参考。
相关文章推荐
- 【Caffe的C++接口使用说明(三)】Ubuntu14.04下Caffe利用训练好的模型进行分类的C++接口使用说明(三)
- 利用训练好的网络参数模型批量对文字分类(caffe)
- caffe的python接口学习:用训练好的模型(caffemodel或者h5)来分类新的图片
- caffe+python 使用训练好的VGG16模型 对 单张图片进行分类,输出置信度
- caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
- 【caffe】用训练好的imagenet模型分类图像
- caffe 框架下微调已有模型训练自己的数据实现图像分类
- 利用caffe训练的模型,写一个测试程序
- caffe:用自己的图像数据训练模型(图片分类)
- 用caffe自带的训练好的模型测试图片的分类结果,实现啦啦啦
- caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
- [原]有关Caffe训练好的模型在Python接口下使用分类不准确的问题解决
- 使用caffe训练一个多标签分类/回归模型
- Python调用已训练好的caffe模型进行分类
- caffe利用训练好的模型进行实际测试
- caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
- 深度学习与人脸识别系列(4)__利用caffe训练深度学习模型
- 有关Caffe训练好的模型在Python接口下使用分类不准确的问题解决
- 使用MATLAB加载训练好的caffe模型进行识别分类
- caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片