caffe+windows7+GPU+训练自己的数据集

参考博文:

https://www.cnblogs.com/love6tao/p/5743030.html

http://blog.csdn.net/qq_27923041/article/details/54139887

安装cudnn 时,记得这个cudnn文件三个要拷贝到C盘中,替换掉原来的

1.制作训练集和测试集的标签(done)
见new_setlab.py
注意在同一目录下
要删掉train/
和val/
和文件夹SetLab文件(C++)
见(useful)save_convert.py
Notice:要将图片归一化:256x256


2.格式转换(leveldb只有windows才能编译)
数据格式转换需要以下几个条件:1、由caffe windows编译出的convert_imageset.exe;2、样本图片数据集准备;3、样本图片对应的标签文件;4、确定所要转换的数据格式是leveldb还是lmdb
caffe windows编译convert_imageset.exe方法此处不做赘述,配置caffe windows时即已完成。<<<PS:需要注意的是在编译convert_imageset.exe时,要将参数shuffle设定为true!!!>>>
方法一(done):
由compute_image_leveldb.txt文件另存为compute_image_leveldb.bat
Notice:
.txt文件的写法:
SET GLOG_logtostderr=1  
C:\Users\Administrator\Desktop\Caffe_Using\caffe-master\Build\x64\Release\convert_imageset.exe C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/data/myself/train/ C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/data/myself/train/train.txt C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/data/myself/mytrainlmdb 0  
pause  
train.txt和test.txt文件的名字如下面的格式:
traincar/320.jpg 0
然后执行:
compute_image_leveldb_train.bat
compute_image_leveldb_val.bat


方法二(待定):
改create_imagenet.sh文件中的路径
这里要安装Git软件(windows平台下)
example设定为数据集的路径C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/data/myself
data也设定为数据集路径  C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/data/myself
tools为convert_imageset.exe的路径 C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/Build/x64/Release
train_data_root 训练数据集路径 C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/data/myself/train
val_data_root 测试数据集路径C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/data/myself/test


Notice:添加了这一句代码“--backend=leveldb\”


3.计算均值:
方法一(done):
见compute_mean.bat(记得要放在和训练数据集同一文件下)


方法二:
改make_imagenet_mean.sh文件
example是数据集路径  C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/data/myself
data 为数据集路径  
tools为compute_image_mean.exe路径


Notice:$DATA/imagenet_mean.binaryproto 后面--backend=leveldb


4.设计网络结构:
两个文件:
my_solver_setup.prototxt
my_train_val.prototxt:若是分类问题要更改最后全连接层的分类数


5.训练测试:
setup_train.bat
setpu_test.bat


6.测试模型分类结果并输出(python):
插入一个train.prototxt 和deploy.prototxt文件的差别:https://www.cnblogs.com/zhonghuasong/p/7353221.html
http://blog.csdn.net/fx409494616/article/details/53008971


7.主要参考:http://blog.csdn.net/koloumi/article/details/57916526(python文件的编写)
https://www.cnblogs.com/Allen-rg/p/5834551.html
deploy.prototxt 中input_param { shape: { dim: 10 dim: 3 dim: 227 dim: 227 } }
第一个:对待识别样本图片进行数据增广的数量,一个图片会变成10个,之后输入到网络进行识别。如果不进行数据增广,可以设置成1。 
第二个:图片的通道数,一般灰度图片为单通道,则值为1,如果为非灰度图3通道图片则为3。 
第三个:图片的高度,单位像素。 
第四个:图片的宽度,单位像素。
http://blog.csdn.net/koloumi/article/details/57916526


8.imageData层可以直接读图片的信息
layer {  
  name: "demo"  
  type: "ImageData"  
  top: "data"  
  top: "label"  
  include {  
    phase: TRAIN  
  }  
  transform_param {  
    scale: 0.00390625  
    mean_value: 128  
  }  
  image_data_param {  
    source: "data/hwdb/trainall.txt"  
    root_folder: "data/hwdb/DstImg/"  
    new_height: 48  
    new_width: 48  
    is_color: false  
    batch_size: 256  
    shuffle: true  
  }  
}  


9.使用不同的求解器:
http://www.cnblogs.com/denny402/p/5074212.html
#"SGD":0.9
#迭代1000次,测试:


#1.type:"AdaDelta":比2慢:0.83
#delta:1e-6
#momentum:0.95
#base_lr:1.0
#AdaDelta是一种”鲁棒的学习率方法“,是基于梯度的优化方法(like SGD)。


#2.type:"AdaGrad":0.89:很快


#3.type:"Adam":0.88


#4.type:"Nesterov":0.9


#5.type:"RMSProp":0.9
#rms_decay:0.98


10.<21天实战caffe的课后答案>
http://blog.csdn.net/kkk584520/article/details/52748821


11.caffe-python 接口:(博文推荐)
http://blog.csdn.net/langb2014/article/category/5998589
http://blog.csdn.net/u013989576/article/details/70510863
http://blog.csdn.net/cgt19910923/article/details/52911339

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值